Néhány nappal ezelőtt megjelent a hír biztonsági rést azonosítottak a Netfilterben (a hálózati csomagok szűrésére és módosítására használt Linux kern alrendszer), amely lehetővé teszi egy helyi felhasználó számára, hogy root jogosultságokat szerezzen egy rendszerbenakár szigetelt tartályban.
A CVE-2021-22555 biztonsági rés ez a probléma a 2.6.19-es kernel óta létezik, 15 évvel ezelőtt indult és van amelyet a meghajtók hibája okozott IPT_SO_SET_REPLACE és IP6T_SO_SET_REPLACE, ami puffertúlcsordulást okoz, ha speciálisan díszített paramétereket küldenek a setsockopt híváson keresztül kompatibilis módban.
Talán ezen a ponton sokan csodálkoznak azon, hogyan lehetséges, hogy a Linux kernel hibája ilyen sokáig észrevétlen maradhat, és erre a válasz az, hogy annak ellenére, hogy a Linux 2.6.19 óta fennálló hibát a kódon keresztül találták meg audit, annak ellenére, hogy a C kód nem volt megismételhető, ezért nem volt kihasználható, mert a privilégiumok fokozásához szükséges erőforrások akkor még nem voltak megtalálhatók.
Például a kiváltságos felhasználói névterek támogatása a 3.8 kernelben található. Néhány disztribúció rendelkezik olyan javítással, amely hozzáadja a sysctl-t, hogy letiltsa a nem privilegizált felhasználói névtereket.
Normál körülmények között csak a root felhasználó hívhatja a compat_setsockopt (), de a szükséges engedélyek hogy támadást hajtson végre ezeket kiváltságtalan felhasználó is megszerezheti azokon a rendszereken, amelyeknél engedélyezett a felhasználói névtér.
A CVE-2021-22555 egy 15 éves verem a veremírási sebezhetőségből a Linux Netfilterben, amely elég erős ahhoz, hogy megkerülje az összes modern biztonsági könnyítést és elérje a kernelkód végrehajtását.
Mint ilyen, le van írva egy helyi felhasználó létrehozhat egy tárolót külön root felhasználóval, és kihasználhatja az onnan származó biztonsági réstén. Például a "felhasználói névtereket" alapértelmezés szerint az Ubuntu és a Fedora tartalmazza, de a Debianban és az RHEL-ben nem.
Ez a biztonsági rés kihasználható a
m_list->next
mutatómsg_msg
felépítése és a használat utáni szabad elérés. Ez elég hatékony ahhoz, hogy a rendszermag kódja a KASLR, SMAP és SMEP megkerülésével fusson.
Emellett probléma merül fel az xt_compat_target_from_user () függvényben a memória méretének helytelen kiszámítása miatt, amikor a rendszermag-struktúrákat 32 bites és 64 bites ábrázolás közötti átalakítás után mentik.
Mint ilyen, megemlítik azt a hiba lehetővé teszi négy "nulla" bájt írását a pufferen kívüli bármely pozícióba hozzárendelve, 0x4C eltolással korlátozva. Emiatt említik ez a szolgáltatás elegendőnek bizonyult egy kihasználás létrehozásához amely lehetővé teszi a root jogok megszerzését: az msg_msg struktúra m_list-> következő mutatójának törlésével megteremtették a feltételeket az adatok eléréséhez a memória felszabadítása után (use-after-free), amelyet aztán a címekre és az msgsnd () rendszerhívás manipulálásával megváltozik más struktúrákra.
Ami a hibajelentést illeti, mint minden észlelt sebezhetőség, ez magában foglal egy folyamatot és a jelentést, amelyet áprilisban készítettek a kernel fejlesztőivel, amellyel ezt követően néhány nap alatt kijavították, valamint az összes támogatott terjesztésben szereplő javítást. információk a hibáról később kiadhatók.
A Debian, Arch Linux és Fedora projektek már generáltak csomagfrissítéseket. Az Ubuntutól kezdve az RHEL és a SUSE frissítések készülnek. Mivel a hiba súlyos, a gyakorlatban kihasználható és lehetővé teszi a szökést a konténerből, A Google 10,000 XNUMX dollárra becsülte felfedezését, és megduplázta a jutalmat a sérülékenységet azonosító kutatónak és a Kubernetes-tárolók kCTF-fürtön történő elkülönítésének elkerülésére szolgáló módszer azonosításáért.
A teszteléshez elkészült egy kipróbálás működő prototípusa hogy megkerüli a KASLR, SMAP és SMEP védelmi mechanizmusokat.
Végül ha érdekel, hogy többet tudj meg róla, ellenőrizheti a részleteket A következő linken.