Bola odhalená technika na využitie zraniteľnosti v subsystéme tty jadra Linuxu

Výskumníci z tímu Google Project Zero zverejnili metódu na využitie zraniteľnosti (CVE-2020-29661) pri implementácii obslužného programu ioctl TIOCSPGRP zo subsystému tty linuxového jadra a podrobne preskúmali aj ochranné mechanizmy, ktoré by mohli takéto zraniteľnosti.

Chyba spôsobujúca problém bola opravená v jadre Linuxu 3. decembra minulého roku. Problém sa objavuje v jadrách do verzie 5.9.13, ale väčšina distribúcií problém vyriešila v aktualizáciách balíčkov jadra ponúkaných minulý rok (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Podobná zraniteľnosť (CVE-2020-29660) bola súčasne nájdená pri implementácii volania TIOCGSID ioctl, ale tiež už bola všade opravená.

Problém je spôsobený chybou pri nastavovaní zámkov, ktorá viedla k race condition v kóde drivers/tty/tty_jobctrl.c, ktorý bol použitý na vytvorenie podmienok použitia po voľnom zneužití z používateľského priestoru prostredníctvom manipulácií ioct., a to volaním TIOCSPGRP. V Debiane 10 s jadrom 4.19.0-13-amd64 bolo preukázané funkčné zneužitie eskalácie privilégií.

Publikovaný článok sa zároveň nezameriava ani tak na techniku ​​vytvárania pracovného exploitu, ako skôr na to, aké nástroje v jadre existujú na ochranu pred takýmito zraniteľnosťami. Záver nie je utešujúci, metódy ako segmentácia pamäte v halde a kontrola prístupu do pamäte po jej uvoľnení sa v praxi nepoužívajú, pretože vedú k poklesu výkonu, a ochrana založená na CFI (Control Flow Integrity), ktorá blokuje exploity v neskorších fázach útoku, potrebuje zlepšenie.

Pri zvažovaní toho, čo by z dlhodobého hľadiska malo význam, je použitie pokročilých statických analyzátorov alebo používanie jazykov bezpečných pre pamäť, ako sú napríklad dialekty Rust a C s bohatými anotáciami (napríklad Checked C) na kontrolu. stav počas fázy budovania. zámky, objekty a ukazovatele. Medzi metódy ochrany patrí aj aktivácia režimu panic_on_oops, prepnutie štruktúr jadra do režimu len na čítanie a obmedzenie prístupu k systémovým volaniam pomocou mechanizmov, ako je seccomp.

Zdroj: opennet.ru

Pridať komentár