Sebezhetőség a Linux kernel AF_PACKET socket megvalósításában

Három évvel a sebezhetőségi hullám után (1, 2, 3, 4, 5) a Linux kernel AF_PACKET alrendszerében azonosított még egy probléma (CVE-2020 14386-), lehetővé téve a helyi, jogosulatlan felhasználók számára, hogy rootként hajtsanak végre kódot, vagy kilépjenek az elszigetelt tárolókból, ha root hozzáféréssel rendelkeznek.

Az AF_PACKET socket létrehozásához és a biztonsági rés kihasználásához CAP_NET_RAW jogosultságokra van szükség. A megadott engedélyt azonban egy jogosultság nélküli felhasználó is megszerezheti olyan rendszereken létrehozott tárolókban, amelyeken engedélyezett a felhasználói névterek. Például a felhasználói névterek alapértelmezés szerint engedélyezve vannak az Ubuntu és a Fedora rendszeren, de a Debian és az RHEL rendszeren nem. Androidon a médiaszerver folyamatnak joga van AF_PACKET socketeket létrehozni, amelyeken keresztül a sérülékenység kihasználható.

A sérülékenység a tpacket_rcv függvényben található, és a netoff változó számítási hibája okozza. A támadó olyan feltételeket hozhat létre, amelyekben a netoff változót a maclen változónál kisebb értékre írják, ami túlcsordulást okoz a "macoff = netoff - maclen" kiszámításakor, és ezt követően helytelenül állítja be a mutatót a bejövő adatok pufferére. Ennek eredményeként a támadó 1-10 bájt közötti írást kezdeményezhet a lefoglalt puffer határán túli területre. Megjegyzendő, hogy fejlesztés alatt van egy exploit, amely lehetővé teszi root jogok megszerzését a rendszerben.

A probléma 2008 júliusa óta jelen van a rendszermagban, i.e. minden tényleges magban megnyilvánul. A javítás jelenleg a következő néven érhető el tapasz. A következő oldalakon nyomon követheti a csomagfrissítések elérhetőségét a disztribúciókban: Ubuntu, Fedora, SUSE, Debian, RHEL, Bolthajtás.

Forrás: opennet.ru

Hozzászólás