Ir atklāts paņēmiens Linux kodola tty apakšsistēmas ievainojamības izmantošanai

Pētnieki no Google Project Zero komandas publicēja metodi ievainojamības (CVE-2020-29661) izmantošanai, ieviešot TIOCSPGRP ioctl apdarinātāju no Linux kodola apakšsistēmas tty, kā arī detalizēti izpētīja aizsardzības mehānismus, kas varētu bloķēt šādas. ievainojamības.

Kļūda, kas izraisīja problēmu, tika novērsta Linux kodolā pagājušā gada 3. decembrī. Problēma parādās kodolos līdz versijai 5.9.13, taču lielākā daļa izplatījumu ir novērsuši problēmu pagājušajā gadā piedāvātajos kodola pakotņu atjauninājumos (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Līdzīga ievainojamība (CVE-2020-29660) vienlaikus tika konstatēta TIOCGSID ioctl izsaukuma ieviešanā, taču tā arī jau visur ir novērsta.

Problēmu izraisa kļūda, iestatot slēdzenes, kā rezultātā radās sacīkstes nosacījums drivers/tty/tty_jobctrl.c kodā, kas tika izmantots, lai radītu “use-after-free” nosacījumus, kas tiek izmantoti no lietotāja vietas, izmantojot ioct manipulācijas. izsaucot TIOCSPGRP. Ir pierādīts, ka darbojas privilēģiju eskalācija Debian 10 ar kodolu 4.19.0-13-amd64.

Tajā pašā laikā publicētajā rakstā uzmanība tiek pievērsta ne tik daudz darba izmantošanas izveides tehnikai, bet gan tam, kādi rīki pastāv kodolā, lai aizsargātu pret šādām ievainojamībām. Secinājums nav iepriecinošs; tādas metodes kā atmiņas segmentēšana kaudzē un piekļuves kontrole pēc atmiņas atbrīvošanas praksē netiek izmantotas, jo tās izraisa veiktspējas samazināšanos, un uz CFI (Control Flow Integrity) balstīta aizsardzība, kas bloķē ekspluatāciju uzbrukuma vēlākajos posmos, ir nepieciešami uzlabojumi.

Apsverot, kas ilgtermiņā varētu mainīties, izceļas uzlaboto statisko analizatoru izmantošana vai tādu valodu izmantošana, kas ir drošas atmiņai, piemēram, Rust un C dialekti ar bagātīgām anotācijām (piemēram, Checked C), lai pārbaudītu. slēdzenes, objekti un norādes. Aizsardzības metodes ietver arī režīma panic_on_oops aktivizēšanu, kodola struktūru pārslēgšanu uz tikai lasīšanas režīmu un piekļuves ierobežošanu sistēmas izsaukumiem, izmantojot tādus mehānismus kā seccomp.

Avots: opennet.ru

Pievieno komentāru