Je popsána technika pro zneužití zranitelnosti v subsystému tty linuxového jádra

Výzkumníci z týmu Google Project Zero publikovali metodu pro zneužití zranitelnosti (CVE-2020-29661) v implementaci ioctl handleru TIOCSPGRP ze subsystému tty linuxového jádra a také podrobně prozkoumali ochranné mechanismy, které by mohly takové chyby blokovat. zranitelnosti.

Chyba způsobující problém byla v linuxovém jádře opravena již 3. prosince minulého roku. Problém se objevuje v jádrech do verze 5.9.13, ale většina distribucí problém opravila v aktualizacích balíčků jádra navržených v loňském roce (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Podobná zranitelnost (CVE-2020-29660) byla současně nalezena v implementaci volání TIOCGSID ioctl, ale také byla všude opravena.

Problém je způsoben chybou v zamykání způsobující konflikt v kódu drivers/tty/tty_jobctrl.c, který by mohl být použit k vytvoření podmínek přístupu do paměti bez použití po uvolnění využitých z uživatelského prostoru prostřednictvím TIOCSPGRP voláním ioct. Na Debianu 10 s jádrem 4.19.0-13-amd64 bylo prokázáno funkční exploit pro eskalaci oprávnění.

V publikovaném článku se přitom neklade důraz ani tak na techniku ​​vytvoření pracovního exploitu, ale na to, jaké nástroje v jádře existují na ochranu proti takovým zranitelnostem. Závěr není povzbudivý, metody jako segmentace paměti v haldě a řízení přístupu k paměti po jejím uvolnění se v praxi nepoužívají, protože vedou ke snížení výkonu, a ochrana založená na CFI (Control Flow Integrity), která blokuje využívá v pozdějších fázích útoku, potřebuje zlepšení.

Při zvažování toho, co by mohlo z dlouhodobého hlediska změnit, je použití pokročilých statických analyzátorů nebo použití paměťově bezpečných jazyků, jako jsou dialekty Rust a C s bohatými anotacemi (jako je Checked C) ve fázi budování stavu kontroly. zámky, předměty a ukazatele. Mezi způsoby ochrany je zmíněna také aktivace režimu panic_on_oops, převedení struktur jádra do režimu pouze pro čtení a omezení přístupu k systémovým voláním pomocí mechanismů jako je seccomp.

Zdroj: opennet.ru

Přidat komentář