Otkrivena je tehnika za iskorištavanje ranjivosti u tty podsustavu jezgre Linuxa

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

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

Problem je uzrokovan pogreškom prilikom postavljanja zaključavanja, što je dovelo do uvjeta utrke u kodu drivers/tty/tty_jobctrl.c, koji je korišten za stvaranje uvjeta za korištenje nakon oslobađanja iskorištenih iz korisničkog prostora kroz manipulacije ioct-om pozivanjem TIOCSPGRP-a. Radni iskorištavanje je demonstrirano za eskalaciju privilegija na Debianu 10 s kernelom 4.19.0-13-amd64.

U isto vrijeme, objavljeni se članak ne fokusira toliko na tehniku ​​stvaranja radnog exploita, već na alate koji postoje u kernelu za zaštitu od takvih ranjivosti. Zaključak nije utješan; u praksi se ne koriste metode kao što su segmentacija memorije u hrpi i kontrola pristupa memoriji nakon što se oslobodi, jer dovode do smanjenja performansi, a zaštita temeljena na CFI (Control Flow Integrity) koja blokira podvige u kasnijim fazama napada, potrebno je poboljšanje.

Kada se razmatra što bi dugoročno promijenilo, ono što se ističe je upotreba naprednih statičkih analizatora ili upotreba jezika sigurnih za memoriju kao što su Rust i C dijalekti s bogatim komentarima (kao što je Checked C) za provjeru stanje tijekom faze izgradnje, brave, objekti i pokazivači. Metode zaštite također uključuju aktiviranje načina panic_on_oops, prebacivanje struktura kernela u način rada samo za čitanje i ograničavanje pristupa pozivima sustava korištenjem mehanizama kao što je seccomp.

Izvor: opennet.ru

Dodajte komentar