Otkrivena je tehnika za iskorištavanje ranjivosti u tty podsistemu Linux kernela

Istraživači iz Google Project Zero tima objavili su metodu za iskorišćavanje ranjivosti (CVE-2020-29661) u implementaciji TIOCSPGRP ioctl handlera iz tty podsistema Linux kernela, a također su detaljno ispitali zaštitne mehanizme koji bi mogli blokirati takve ranjivosti.

Greška koja je uzrokovala problem je ispravljena u Linux kernelu već 3. decembra prošle godine. Problem se pojavljuje u kernelima do verzije 5.9.13, ali većina distribucija je riješila problem u ažuriranjima paketa kernela predloženim prošle godine (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Slična ranjivost (CVE-2020-29660) je istovremeno pronađena u implementaciji TIOCGSID ioctl poziva, ali je takođe svuda ispravljena.

Problem je uzrokovan greškom zaključavanja koja uzrokuje stanje utrke u kodu drivers/tty/tty_jobctrl.c, koji bi se mogao koristiti za kreiranje uslova pristupa memoriji bez upotrebe koji se iskorištavaju iz korisničkog prostora putem ioct-poziva TIOCSPGRP. Demonstriran je radni exploit za eskalaciju privilegija na Debianu 10 s kernelom 4.19.0-13-amd64.

Istovremeno, u objavljenom članku naglasak nije toliko na tehnici kreiranja radnog exploita, već na tome koji alati postoje u kernelu za zaštitu od takvih ranjivosti. Zaključak nije ohrabrujući, metode poput segmentiranja memorije u hrpi i kontrole pristupa memoriji nakon njenog oslobađanja se ne koriste u praksi, jer dovode do smanjenja performansi, te zaštite zasnovane na CFI (Control Flow Integrity) koja blokira eksploatacije u kasnijim fazama napada, potrebno je poboljšati.

Kada razmišljate o tome šta bi dugoročno moglo napraviti razliku, upotreba naprednih statičkih analizatora ili korištenje memorijskih sigurnih jezika kao što su Rust i C dijalekti s bogatim napomenama (kao što je Checked C) u fazi izrade provjera stanja brave, objekti i pokazivači. Među metodama zaštite spominju se i aktivacija panic_on_oops moda, prebacivanje struktura kernela u režim samo za čitanje i ograničavanje pristupa sistemskim pozivima pomoću mehanizama kao što je seccomp.

izvor: opennet.ru

Dodajte komentar