Az nf_tables, a watch_queue és az IPsec kihasználható sebezhetőségét azonosították a Linux kernelben

Számos veszélyes sérülékenységet azonosítottak a Linux kernelben, amelyek lehetővé teszik a helyi felhasználók számára, hogy növeljék jogosultságaikat a rendszerben. Az exploitok működő prototípusai elkészültek az összes vizsgált problémára.

  • A watch_queue eseménykövető alrendszer egy biztonsági rése (CVE-2022-0995) lehetővé teszi adatok írását a kernelmemóriában található határokon túli pufferbe. A támadást bármely jogosulatlan felhasználó végrehajthatja, és a kódja kerneljogokkal futhat. A sérülékenység a watch_queue_set_size() függvényben található, és a lista összes mutatójának törlésére tett kísérlethez kapcsolódik, még akkor is, ha nincs memória lefoglalva számukra. A probléma akkor jelentkezik, amikor a legtöbb Linux disztribúcióban használt "CONFIG_WATCH_QUEUE=y" paraméterrel állítjuk össze a rendszermagot.

    A sérülékenységet egy március 11-én hozzáadott kernelmódosítás javította ki. A következő oldalakon követheti nyomon a disztribúciók csomagfrissítéseinek publikációit: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Az exploit prototípus már nyilvánosan elérhető, és lehetővé teszi a root hozzáférés megszerzését, ha Ubuntu 21.10-en fut 5.13.0-37 kernellel.

    Az nf_tables, a watch_queue és az IPsec kihasználható sebezhetőségét azonosították a Linux kernelben

  • Sebezhetőség (CVE-2022-27666) az esp4 és esp6 kernelmodulokban az IPsechez használt ESP-transzformációk (Encapsulating Security Payload) megvalósításával, amelyet IPv4 és IPv6 használatakor használnak. A biztonsági rés lehetővé teszi a normál jogosultságokkal rendelkező helyi felhasználók számára, hogy felülírják a kernelmemóriában lévő objektumokat, és kiterjesszék jogosultságaikat a rendszeren. A problémát a lefoglalt memória mérete és a ténylegesen fogadott adatok közötti egyeztetés hiánya okozza, mivel a maximális üzenetméret meghaladhatja az skb_page_frag_refill struktúrához lefoglalt maximális memóriaméretet.

    A sérülékenységet március 7-én javították a kernelben (javítva az 5.17-ben, 5.16.15-ben stb.). A következő oldalakon követheti nyomon a disztribúciók csomagfrissítéseinek publikációit: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Az exploit működő prototípusa, amely lehetővé teszi, hogy egy átlagos felhasználó root hozzáférést kapjon az Ubuntu Desktop 21.10-hez az alapértelmezett konfigurációban, már megjelent a GitHubon. Állítólag kisebb változtatásokkal az exploit Fedorán és Debianon is működni fog. Figyelemre méltó, hogy az exploit eredetileg a pwn2own 2022 versenyre készült, de a kernel fejlesztői azonosítottak és kijavítottak egy ezzel kapcsolatos hibát, ezért úgy döntöttek, nyilvánosságra hozzák a sebezhetőség részleteit.

  • Két sérülékenység (CVE-2022-1015, CVE-2022-1016) a netfilter alrendszerben az nf_tables modulban, amely biztosítja az nftables csomagszűrő működését. Az első probléma lehetővé teszi a helyi, jogosulatlan felhasználók számára, hogy elérjék a határokon túli írást a verem lefoglalt pufferébe. Túlcsordulás akkor következik be, amikor bizonyos módon formázott nftables kifejezéseket dolgoznak fel, és az nftables szabályokhoz hozzáféréssel rendelkező felhasználó által megadott indexek ellenőrzési fázisában dolgoznak fel.

    A sérülékenységet az okozza, hogy a fejlesztők arra utaltak, hogy az "enum nft_registers reg" értéke egyetlen bájt volt, amikor bizonyos optimalizációk engedélyezésekor a fordító a C89 specifikáció szerint 32 bites értéket tudott használni. . Ennek a tulajdonságnak köszönhetően a memória ellenőrzése és lefoglalása során használt méret nem egyezik meg a struktúrában lévő adatok tényleges méretével, ami ahhoz vezet, hogy a struktúra farka átfedésben van a veremben lévő mutatókkal.

    A probléma kihasználható kód futtatására a rendszermag szintjén, de a sikeres támadáshoz hozzá kell férni az nftables-hoz, amely egy külön hálózati névtérben érhető el CLONE_NEWUSER vagy CLONE_NEWNET jogokkal (például, ha tud egy elszigetelt tárolót futtatni). A sérülékenység szorosan összefügg a fordító által használt optimalizációkkal is, amelyek például a „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y” módban történő építéskor engedélyezve vannak. A sérülékenység kihasználása az 5.12-es Linux kerneltől kezdve lehetséges.

    A második sérülékenységet a netfilterben az okozza, hogy az nft_do_chain kezelőben egy már felszabadult memóriaterülethez (use-after-free) hozzáfér, és ez a kernelmemória inicializálatlan területeinek kiszivárgásához vezethet, amelyek az nftables kifejezésekkel végzett manipulációk során olvashatók és felhasználhatók, például mutatócímek meghatározására más biztonsági rések fejlesztése során. A sérülékenység kihasználása az 5.13-as Linux kerneltől kezdve lehetséges.

    A sérülékenységeket a mai 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 és 4.9.309 kerneljavítások javítják. A következő oldalakon követheti nyomon a disztribúciók csomagfrissítéseinek publikációit: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. A problémákat azonosító kutató mindkét sérülékenységre működő exploitok előkészítését jelentette be, amelyek a tervek szerint néhány napon belül megjelennek, miután a disztribúciók frissítéseket adnak ki a kernelcsomagokhoz.

Forrás: opennet.ru

Hozzászólás