Vzdáleně zneužitá zranitelnost root v nástroji ping FreeBSD

FreeBSD má zranitelnost (CVE-2022-23093) v obslužném programu ping, který je součástí základní distribuce. Problém by mohl potenciálně vést ke vzdálenému spuštění kódu jako root při pingování externího hostitele ovládaného útočníkem. Oprava byla navržena v aktualizacích FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 a 12.3-RELEASE-p10. Zda jsou identifikovanou zranitelností ovlivněny i další BSD systémy, není zatím jasné (netBSD, DragonFlyBSD a OpenBSD ještě nebyly hlášeny).

Tato chyba zabezpečení je způsobena přetečením vyrovnávací paměti v kódu analýzy pro zprávy ICMP přijaté v reakci na požadavek sondy. Kód pro odesílání a přijímání zpráv ICMP v pingu používá nezpracované sokety a je spouštěn se zvýšenými oprávněními (obslužný program je dodáván s příznakem setuid root). Odpověď je zpracována na straně ping prostřednictvím rekonstrukce hlaviček IP a ICMP paketů přijatých z raw socketu. Extrahované hlavičky IP a ICMP jsou zkopírovány funkcí pr_pack() do vyrovnávacích pamětí bez ohledu na skutečnost, že po hlavičce IP mohou být v paketu přítomny další rozšířené hlavičky.

Takové hlavičky jsou extrahovány z paketu a zahrnuty do bloku hlavičky, ale nejsou brány v úvahu při výpočtu velikosti vyrovnávací paměti. Pokud hostitel v reakci na odeslaný požadavek ICMP vrátí paket s dalšími hlavičkami, jejich obsah se zapíše do oblasti mimo hranici vyrovnávací paměti na zásobníku. Výsledkem je, že útočník může přepsat až 40 bajtů dat v zásobníku, což potenciálně umožní spuštění jeho kódu. Nebezpečí problému je zmírněno tím, že v době projevu chyby je proces ve stavu izolace systémových volání (režim schopností), což ztěžuje přístup ke zbytku systému. po zneužití zranitelnosti.

Zdroj: opennet.ru

Přidat komentář