Pronađena je ranjivost u podsustavu tty kernela Linuxa

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

U postu se spominje da problem je uzrokovan pogreškom u postavkama zaključavanja, što je dovelo do stanja utrke u kodu /tty/tty_jobctrl.c, koji je korišten za stvaranje uvjeta za pristup memoriji nakon pokretanja (use-after-free), iskorištavan od strane korisničkog prostora kroz manipulaciju s ioct- pozivanjem TIOCSPGRP.

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

Mnoge pojedinačne tehnike iskorištavanja i opcije ublažavanja koje ovdje opisujem nisu nove. Međutim, mislim da ih vrijedi pisati zajedno kako bi se pokazalo kako različita ublažavanja djeluju s prilično normalnim exploit-om bez naknadnog korištenja.

Isječci koda u ovom postu na blogu koji su relevantni za eksploataciju preuzeti su iz prethodne verzije 4.19.160, jer se na tome temelji ciljna Debian kernel; neki drugi isječci koda su iz Linux mainlinea.

Istovremeno, u objavljenom članku, naglasak nije toliko na tehnici stvaranja funkcionalnog exploita, već na tome koji alat ima ih u kernelu da se zaštitiš protiv takvih ranjivosti.

Zaključak je razočaravajući, budući da se spominje da se metode poput segmentiranja memorije u hrpi i kontrole pristupa memoriji nakon što se ona oslobodi ne primjenjuju u praksi jer dovode do degradacije performansi i zaštite temeljene na CFI (Control Flow Integrity), koji blokira eksploatacije u kasnijim fazama napada, zahtijeva poboljšanja.

Posebna vrsta terminalnog uređaja su pseudo terminali, koji se koriste kada, primjerice, otvorite terminalsku aplikaciju u grafičkom okruženju ili se spojite na udaljeni stroj putem SSH-a. Dok su drugi terminalni uređaji spojeni na neku vrstu hardvera, oba kraja pseudoterminala kontroliraju se korisničkim prostorom, a pseudoterminali se mogu slobodno kreirati korisničkim prostorom (bez privilegija).

Kad god se otvori / dev / ptmx (kratica od "pseudo-terminal multiplexer"), rezultirajući deskriptor datoteke predstavlja stranu uređaja (koja se u dokumentaciji i izvorima kernela naziva "glavni pseudoterminal") uređaja. novi pseudo -terminal.

 Odgovarajući terminalni uređaj (na koji se obično povezuje ljuska) jezgra automatski kreira pod / dev / pts / .

Kada gledamo što bi dugoročno moglo napraviti razliku, naglasak je na korištenju naprednih statičkih analizatora ili korištenju memorijskih jezika poput Rust i C dijalekata s proširenim napomenama (poput dokazanog C) za izradu provjera statusa, zaključavanja, objekata i pokazivača. Metode zaštite također spominju omogućavanje panic_on_oops načina rada, čineći strukture jezgre samo za čitanje i ograničavajući pristup sistemskim pozivima putem mehanizama kao što je seccomp.

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

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

Konačno Ako vas zanima više o tome, možete provjeriti detalje U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.