A networkd-dispatcher biztonsági rései, amelyek root hozzáférést tesznek lehetővé

A Microsoft biztonsági kutatói két sérülékenységet (CVE-2022-29799, CVE-2022-29800) azonosítottak a Nimbuspwn kódnevű networkd-dispatcher szolgáltatásban, amelyek lehetővé teszik a jogosulatlan felhasználók tetszőleges parancsok végrehajtását root jogosultságokkal. A problémát a networkd-dispatcher 2.2 kiadása javította. A frissítések disztribúciónkénti közzétételéről még nincs információ (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

A Networkd-dispatcher számos Linux disztribúcióban használatos, beleértve az Ubuntu-t is, amely a systemd-networkd háttérfolyamatot használja a hálózati paraméterek konfigurálására, és a NetworkManager-dispatcher-hez hasonló funkciókat hajt végre, pl. szkriptek indításával foglalkozik, amikor a hálózati kapcsolat állapota megváltozik, például VPN indítására szolgál, miután a fő hálózati kapcsolat létrejött.

A networkd-dispatcherhez kapcsolódó háttérfolyamat rootként fut, és a D-buszon keresztül fogadja az eseményjeleket. A hálózati kapcsolatok állapotának változásaival kapcsolatos eseményekről szóló információkat a systemd-networkd szolgáltatás küldi el. A probléma az, hogy a jogosulatlan felhasználók létrehozhatnak egy nem létező állapoteseményt, és elindíthatják a szkriptjüket rootként.

A Systemd-networkd csak az /etc/networkd-dispatcher könyvtárban található rendszerkezelő szkriptek futtatására készült, és nem érhető el a felhasználó cseréjére, de a fájl elérési út feldolgozó kódjában lévő sérülékenység (CVE-2022-29799) miatt volt egy a határokon kívüli alapkönyvtár lehetősége és tetszőleges szkriptek elindítása. Különösen a parancsfájl elérési útjának kialakításakor a D-buszon keresztül továbbított OperationalState és AdministrativeState értékeket használták, amelyekben a speciális karakterek nem törlődnek. A támadó létrehozhat egy saját állapotot, amelynek neve a „../” karaktereket tartalmazza, és átirányíthatja a networkd-dispatcher hívást egy másik könyvtárba.

A második sebezhetőség (CVE-2022-29800) versenyfeltételhez kapcsolódik – a (roothoz tartozó) szkriptparaméterek ellenőrzése és a futtatás között eltelt egy rövid idő, ami elegendő volt a fájl cseréjéhez és az ellenőrzés megkerüléséhez. script a root felhasználóhoz tartozik. Ezen túlmenően, a networkd-dispatcher nem ellenőrizte a szimbolikus hivatkozásokat, beleértve a szkriptek futtatását az alfolyamatokon keresztül. Popen hívás, amely jelentősen leegyszerűsítette a támadás megszervezését.

Működési technika:

  • Létrejön egy „/tmp/nimbuspwn” könyvtár és egy „/tmp/nimbuspwn/poc.d” szimbolikus hivatkozás, amely a „/sbin” könyvtárra mutat, amely a root tulajdonában lévő végrehajtható fájlok ellenőrzésére szolgál.
  • A „/sbin” fájlból futtatható fájlok esetén az azonos nevű fájlok a „/tmp/nimbuspwn” könyvtárban jönnek létre, például a „/sbin/vgs” fájlhoz egy „/tmp/nimbuspwn/vgs” futtatható fájl. létre, egy nem jogosult felhasználó tulajdonában, amelybe a támadó által futtatni kívánt kód kerül.
  • Jelet küld a D-buszon keresztül a networkd-dispatcher folyamatnak, amely a „../../../tmp/nimbuspwn/poc” értéket jelzi az OperationalState-ban. Az „org.freedesktop.network1” névtérben való jel küldéséhez a kezelőinek a systemd-networkd-hez való csatlakoztatásának lehetőségét használták, például gpgv vagy epmd manipulációkkal, vagy kihasználhatja azt a tényt, hogy a systemd-networkd alapértelmezés szerint nem fut (például Linux Mint rendszeren).
  • A jel vétele után a Networkd-dispatcher összeállítja a root felhasználó tulajdonában lévő futtatható fájlok listáját, amelyek elérhetők a „/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d” könyvtárban. amely valójában a "/sbin"-re hivatkozik.
  • Abban a pillanatban, amikor a fájlok listája megérkezik, de a szkript még nem indult el, a szimbolikus hivatkozás átirányul a „/tmp/nimbuspwn/poc.d” címről a „/tmp/nimbuspwn” címre, és a networkd-dispatcher elindítja a szkript, amelyet a támadó tárol root jogokkal.

A networkd-dispatcher biztonsági rései, amelyek root hozzáférést tesznek lehetővé


Forrás: opennet.ru

Hozzászólás