PinTheft je šestá zranitelnost třídy Copy Fail, která poskytuje root oprávnění Linux

Byly zveřejněny informace o šesté zranitelnosti (1, 2-3, 4, 5). Tato zranitelnost umožňuje neprivilegovanému lokálnímu uživateli získat root oprávnění přepsáním dat v mezipaměti stránek. Zranitelnost má kódové označení PinTheft. K dispozici je prototyp exploitu. Identifikátor CVE zatím nebyl přiřazen. Oprava je v současné době k dispozici pouze jako záplata, která byla publikována 5. května a přijata do větve netdev 11. května, ale není zahrnuta ve verzích údržby jádra.

Zranitelnost existuje v implementaci síťového protokolu RDS (Reliable Datagram Sockets), který je určen pro vysokorychlostní výměnu zpráv mezi uzly clusteru s minimální latencí a garantovaným doručením. Útok je možný na systémech s povoleným subsystémem io_uring (io_uring_disabled=0) a jádrem kompilovaným s možnostmi CONFIG_RDS, CONFIG_RDS_TCP a CONFIG_IO_URING. Aby exploit fungoval, musí mít systém čitelný spustitelný soubor s příznakem SUID-root.

Pro automatické načtení modulu jádra rds_tcp exploit požaduje odeslání dat přes RDS s využitím transportu SO_RDS_TRANSPORT=2. Je třeba poznamenat, že mezi testovanými distribucemi Linux Ve výchozí konfiguraci je modul jádra rds k dispozici pouze v Archu. LinuxChcete-li tuto zranitelnost zablokovat, můžete zablokovat automatické načítání modulů jádra rds a rds_tcp: rmmod rds_tcp rds printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.conf

Zranitelnost je způsobena chybou v implementaci zerocopy ve funkci rds_message_zcopy_from_user(), která přímo upravuje data v mezipaměti stránek, aby se zabránilo zbytečnému ukládání do vyrovnávací paměti. V případě havárie nebylo pole rm->data.op_nents vymazáno, což vedlo k chybě double-free. Přítomnost nesprávné hodnoty v čítači referencí byla zneužita k přepsání dat v mezipaměti stránek manipulací s ukazatelem na pevnou vyrovnávací paměť io_uring.

Jinak je mechanismus zneužití typický pro všechny zranitelnosti této třídy: útočník vynutí uložení programového souboru s kořenovým příznakem suid do mezipaměti stránek a poté vloží kód pro spuštění /usr/bin/sh do hlavičky ELF. Po této manipulaci spuštění programu načte do paměti upravenou kopii z mezipaměti stránek, nikoli původní spustitelný soubor z disku. Na rozdíl od předchozích exploitů je tato nová varianta uzpůsobena pouze pro útok na utilitu „su“, ale lze ji použít i v případě, že jsou v systému přítomny programy s příznakem suid, jako jsou mount, passwd, chsh, newgrp, umount a pkexec.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster