Odhalená technika zneužitia zraniteľnosti v tty subsystéme jadra Linux.

Vedci z tímu Google Project Zero zverejnili metódu využitia zraniteľnosti (CVE-2020-29661) v implementácii ioctl-handleru TIOCSPGRP z tty subsystému jadra Linux a podrobne preskúmali ochranné mechanizmy, ktoré by mohli zablokovať takéto zraniteľnosti.

Problém spôsobujúca chyba bola odstránená v jadre Linux už 3. decembra minulého roka. Problém sa prejavuje v jadrách do verzie 5.9.13, ale väčšina distribúcií túto otázku vyriešila v aktualizáciách balíkov s jadrom, ktoré boli navrhnuté už minulý rok (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Podobná zraniteľnosť (CVE-2020-29660) bola zároveň objavená v implementácii ioctl-výzvy TIOCGSID, ale táto bola už tiež vo všeobecnosti odstránená.

Problém je spôsobený chybou pri nastavovaní zámkov, čo vedie k stavovej závode v kóde drivers/tty/tty_jobctrl.c, ktorý sa dal využiť na vytvorenie podmienok na prístup k pamäti po jej uvoľnení (use-after-free), exploatovaných z užívateľského priestoru prostredníctvom manipulácie s ioct-výzvou TIOCSPGRP. Funkčný exploit bol demonštrovaný na zvýšenie privilégia v Debiane 10 s jadrom 4.19.0-13-amd64.

Pri tom zverejnený článok kladie dôraz nie len na techniku vytvorenia funkčného exploitu, ale aj na to, aké nástroje v jadre existujú na ochranu proti podobným zraniteľnostiam. Záver je minimálne povzbudzujúci; metódy ako segmentácia pamäte v hromade a kontrola prístupu k pamäti po jej uvoľnení sa v praxi nepoužívajú, pretože vedú k zníženiu výkonu, a ochrana na základe CFI (Control Flow Integrity), ktorá blokuje exploidy v neskorších fázach útoku, si vyžaduje úpravy.

Pri úvahe o tom, čo by mohlo zmeniť situáciu v dlhodobom horizonte, sa vyzdvihuje využitie pokročilých statických analyzátorov alebo použitie jazykov, ktoré zabezpečujú bezpečnú prácu s pamäťou, ako sú Rust a dialekty jazyka C s rozšírenými anotáciami (napríklad Checked C), v etape zostavovania, ktoré kontrolujú stav zámkov, objektov a ukazovateľov. Medzi metódy ochrany sa tiež spomína aktivácia režimu panic_on_oops, prevod štruktúr jadra do režimu iba na čítanie a obmedzenie prístupu k systémovým volaniam prostredníctvom takých mechanizmov, ako je seccomp.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster