Google Project Zero meeskonna teadlased avaldasid haavatavuse (CVE-2020-29661) ekspluateerimise meetodi Linuxi tuuma tty alamsüsteemi ioctl-käitleja TIOCSPGRP rakenduses ning uurisid põhjalikult kaitsemehhanisme, mis võiksid selliseid haavatavusi blokeerida.
Probleemi põhjustav viga kõrvaldati Linuxi tuumas juba mullu 3. detsembril. Probleem avaldub tuumades, mis on versioonid kuni 5.9.13, kuid enamik distributsioone on probleemi lahendanud tuuma pakettide uuendustes, mis pakuti juba eelmisel aastal (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Sarnane haavatavus (CVE-2020-29660) leiti samal ajal ioctl-käsku TIOCGSID rakendades, kuid see on samuti juba laialdaselt parandatud.
Probleem on põhjustatud lukustuste seadistamise veast, mis viib koodi drivers/tty/tty_jobctrl.c puhul andmete konkurentsiseisundisse, mida suudeti kasutada mälu juurdepääsu tingimuste loomiseks pärast selle vabastamist (use-after-free), ekspluateerituna kasutajaruumi kaudu TIOCSPGRP ioctl-kõne manipuleerimise kaudu. Töötav eksploit on demonstreeritud priviligeeritud tõstmiseks Debian 10 versiooniga 4.19.0-13-amd64.
Avaldatud artiklis ei keskenduta niivõrd tööka eksploidijate loomise tehnikatele, vaid sellele, millised tööriistad tuumas eksisteerivad sarnaste haavatavuste kaitsmiseks. Tulemus on masendav, kuna mälusegmentimise ja mäluhalduse meetodid pärast vabastamist ei rakendata praktikas, kuna need vähendavad jõudlust, ning CFI (Control Flow Integrity) põhine kaitse, mis blokeerib eksploidid rünnaku hilisemates etappides, vajab täiendavat arendust.
Küsimuses, mis võiks pikaajalises perspektiivis olukorda muuta, tuuakse esile edasijõudnud staatiliste analüsaatorite kasutamine või keelte rakendamine, mis tagavad mäluga ohutu töötamise, nagu Rust ja C keele dialektid laiendatud annotatsioonidega (näiteks Checked C), mis kontrollivad lukustuste, objektide ja näidikute seisundit koostamise etapis. Kaitsemeetoditena mainitakse ka panic_on_oops režiimi aktiveerimist, tuuma struktuuride muutmist ainult lugemisrežiimiks ja juurdepääsu piiramine süsteemikõnedele selliste mehhanismidega nagu seccomp.
Allikas: opennet.ru
