Pronađena je ranjivost u Linux kernelu tty podsistemu

Istraživači iz Google Project Zero tima objavili su nedavno putem bloga nova metoda iskorišćavanja ranjivosti (CVE-2020-29661) u implementaciji ioctl rukovaoca TIOCSPGRP od Linux kernel tty podsistem, kao i detaljne zaštitne mehanizme koji bi mogli blokirati ove ranjivosti.

U postu se pominje da problem je uzrokovan greškom u postavkama zaključavanja, što je dovelo do stanja trke u kodu /tty/tty_jobctrl.c, koji je korišten za stvaranje uslova za pristup memoriji nakon pokretanja (use-after-free), koji je iskoristio korisnički prostor kroz manipulaciju sa ioct- pozivanjem TIOCSPGRP.

Pored objavljenih informacija, takođe izvršena je funkcionalna demonstracija eksploatacije za eskalaciju privilegija Debian 10 s kernelom 4.19.0-13-amd64 i što također ne isključuje da može utjecati na različite distribucije, među kojima su naravno one temeljene i izvedene iz Debiana.

Mnoge individualne tehnike eksploatacije i opcije ublažavanja koje ovdje opisujem nisu nove. Međutim, mislim da je vrijedno pisati ih zajedno kako bismo pokazali kako različita ublažavanja imaju interakciju s prilično normalnim exploit-om bez upotrebe.

Isječci koda u ovom blog postu koji su relevantni za eksploataciju preuzeti su iz prethodne verzije 4.19.160, jer se na tome temelji ciljno Debian kernel; neki drugi isječci koda su iz glavne linije Linuxa.

Istovremeno, u objavljenom članku, naglasak nije toliko na tehnici kreiranja funkcionalnog eksploata, već na tome koji alati ima ih u kernelu da se zaštitite protiv takvih ranjivosti.

Zaključak je razočaravajući, jer se spominje da se metode kao što su segmentiranje memorije u hrpi i kontrola pristupa memoriji nakon njenog oslobađanja ne primjenjuju u praksi jer dovode do degradacije performansi i zaštite zasnovane na CFI (Control Flow Integrity), koji blokira eksploatacije u kasnijim faze napada, zahtijeva poboljšanja.

Posebna vrsta terminalnog uređaja su pseudo-terminali, koji se koriste kada, na primjer, otvorite terminalsku aplikaciju u grafičkom okruženju ili se povežete na udaljenu mašinu putem SSH-a. Dok su drugi terminalni uređaji povezani na neku vrstu hardvera, oba kraja pseudo-terminala kontroliraju se korisničkim prostorom, a pseudo-terminali se mogu slobodno kreirati korisničkim prostorom (bez privilegija).

Kad god se / dev / ptmx otvori (skraćeno od "pseudo-terminal multiplexer"), rezultujući deskriptor datoteke predstavlja stranu uređaja (koja se u dokumentaciji i izvorima kernela pominje kao "glavni pseudo-terminal") uređaja. novi pseudo -terminal.

 Odgovarajući terminalni uređaj (na koji se školjka normalno povezuje) jezgro automatski kreira pod / dev / pts / .

Kada gledamo šta bi dugoročno moglo napraviti razliku, naglasak je na korišćenju naprednih statičkih parsera ili na korišćenju memorijskih jezika kao što su Rust i C dijalekti sa proširenim napomenama (poput dokazanog C) za pravljenje provera statusa, zaključavanja, objekata i pokazivača. Metode zaštite takođe pominju omogućavanje panic_on_oops režima, čineći strukture kernela samo za čitanje i ograničavajući pristup sistemskim pozivima kroz mehanizme kao što je seccomp.

Greška koja uzrokuje problem popravljen je u Linux kernelu 3. decembra prošle godine. Problem manifestira se u kernelima prije verzije 5.9.13, ali većina distribucija je riješila problem u ažuriranjima paketa kernela koja su ponuđena prošle godine.

Pominje se i slična ranjivost (CVE-2020-29660) koja je istovremeno pronađena u implementaciji TIOCGSID ioctl poziva, ali je također svuda uklonjena.

Konačno Ako ste zainteresirani da saznate više o tome, možete provjeriti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.