A Dirty Frag sebezhetőségek, amelyek a lapkészlet módosításával root hozzáférést biztosítanak bármely Linux disztribúcióban.

A Linux kernelben két sebezhetőséget fedeztek fel, amelyek lényegében analógok az néhány nappal ezelőtt felfedezett Copy Fail sebezhetőséggel, de más alrendszerekben jelentkeznek – az xfrm-ESP és az RxRPC esetében. A sebezhetőségek kódneve Dirty Frag (a Copy Fail 2 említése is előfordul). A sebezhetőségek lehetővé teszik, hogy egy nem privilegizált felhasználó root jogosultságot szerezzen azáltal, hogy felülírja a folyamat adatait az oldal cache-ben. Elérhető egy exploit, amely működik az összes aktuális Linux disztribúción. A sebezhetőség információi a javítások közzététele előtt kerültek nyilvánosságra, de van megkerülő módszer a probléma blokkolására.

A Dirty Frag két különböző sebezhetőséget ölel fel: az egyik az xfrm-ESP modulban található, amelyet az IPsec titkosítási műveleteinek felgyorsítására használnak az ESP (Encapsulating Security Payload) protokollal, a másik pedig az RxRPC illesztőprogramban, amely megvalósítja az AF_RXRPC socket családot és az azonos nevű RPC protokollt, amely UDP fölött működik. Mindkét sebezhetőség külön-külön lehetővé teszi a root jogosultságok megszerzését. Az xfrm-ESP sebezhetősége a Linux kernelben 2017 januárja óta létezik, míg az RxRPC sebezhetősége 2023 júniusa óta ismert. Mindkét probléma optimalizációkból ered, amelyek közvetlen írást tesznek lehetővé az oldal cache-be.

Az xfrm-ESP sebezhetőségének kihasználásához a felhasználónak jogot kell kapnia névtér létrehozására, míg az RxRPC sebezhetőségének kihasználásához szükséges a rxrpc.ko kernel modul betöltésének lehetősége. Például az Ubuntuban az AppArmor szabályai miatt a nem privilegizált felhasználóknak tilos névterek létrehozása, de alapértelmezettként a rxrpc.ko modul betöltődik. Néhány disztribúcióban hiányzik a rxrpc.ko modul, de nem blokkolják a névterek létrehozását. A problémát felfedező kutató egy kombinált exploitot készített, amely képes a rendszer támadására mindkét sebezhetőségen keresztül, így lehetővé téve a probléma kihasználását minden főbb disztribúcióban. Az exploit tesztelése megerősítést nyert az Ubuntu 24.04.4 verziójával, a 6.17.0-23 kernel verzióval, a RHEL 10.1-gyel a 6.12.0-124.49.1 kernel verzióval, az openSUSE Tumbleweed 7.0.2-1 kernel verziójával, a CentOS Stream 10-zel a 6.12.0-224 kernel verzióval, az AlmaLinux 10-zel a 6.12.0-124.52.3 kernel verzióval és a Fedora 44-gyel a 6.19.14-300 kernel verzióval.

Ahogyan a Copy Fail sebezhetőség esetében, az xfrm-ESP és RxRPC problémáit is az adatok helyszíni visszafejtése okozza a splice() függvény használatával, amely adatok átvitelét végzi fájl- és csatornadeszkiptorok között másolás nélkül, hivatkozások továbbításával a lapozási gyorsítótárban. A felírási művelethez szükséges eltolások megfelelő ellenőrzések nélkül lettek kiszámítva, figyelmen kívül hagyva a lapozási gyorsítótárban lévő elemek közvetlen hivatkozásának használatát, lehetővé téve, hogy különlegesen formázott kérések küldésével 4 bájtot írjunk fel a választott eltolásnál, megváltoztatva ezáltal a lapozási gyorsítótárban bármely fájl tartalmát.

Minden fájlból történő olvasási művelet először a lapozási gyorsítótárból adja vissza a tartalmat. Ha a lapozási gyorsítótárban módosulnak az adatok, a fájlból történő olvasási műveletek nem a valós tárolt információt, hanem manipulált adatokat adnak vissza. A sebezhetőség kihasználása a lapozási gyorsítótár módosítására korlátozódik egy root suid jelzővel rendelkező végrehajtható fájl esetében. Például root jogosultságok megszerzéséhez olvasható a végrehajtható fájl /usr/bin/su a lapozási gyorsítótárba történő behelyezéshez, majd saját kódunk behelyettesítése a fájl lapozási gyorsítótárában töltött tartalmába. A "su" segédprogram indítása után nem az eredeti végrehajtható fájl kerül a memóriába a tárolóról, hanem a lapozási gyorsítótárból származó módosított másolat.

A sebezhetőségek nyilvánosságra hozatalát és a problémák orvoslására vonatkozó frissítések összehangolt kiadását május 12-re terveztek, azonban az információszivárgás miatt a sebezhetőség adatait a javítások közzététele előtt kellett nyilvánosságra hozni. Április végén a netdev nyilvános levelezőlistáján publikálásra kerültek a rxrpc, ipsec és xfrm patch-ek, anélkül, hogy említették volna, hogy a sebezhetőség orvoslásával állnak összefüggésben. Május 5-én az IPsec alrendszer karbantartója elfogadta a git-repozitóriumban a netdev változtatását a xfrm-esp modulhoz javasolt javítással, amelynek leírása nagyrészt megismételte a Copy Fail sebezhetőség problémájára vonatkozó leírást az algif_aead modulban. Az egyik biztonsági kutató érdeklődni kezdett ez iránt a javítás iránt, sikerült egy működő exploitot létrehoznia és közzétennie, nem tudva arról, hogy az információk nyilvánosságra hozatalára május 12-ig embargót rendeltek el.

A Linux kernel és a csomagok javítófrissítései még nem kerültek közzétételre a disztribúciókban, de vannak elérhető problémakezelő javítások – xfrm-esp és rxrpc. A CVE-azonosítók még nem lettek hozzárendelve, ami megnehezíti a csomagfrissítések nyomon követését a disztribúciókban. A védelem alternatívájaként blokkolhatjuk az esp4, esp6 és rxrpc kernel modulok betöltését: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster