Linuxi tuuma pakutud asĂŒnkroonse sisendi/vĂ€ljundi io_uring liideses on tuvastatud haavatavus (CVE-2024-0582), mis vĂ”imaldab mittepriviligeeritud kasutajal omandada sĂŒsteemis root-konto Ă”igused. Haavatavuse Ă€rakasutamiseks piisab tavalisest kohalikust juurdepÀÀsust sĂŒsteemile, ilma et oleks vaja manipuleerida nimespetsiifiliste ruumidega. Praegu on avalikult saadaval töötav eksploit, samuti on ĂŒksikasjalikult kirjeldatud teine haavatavuse Ă€rakasutamise tehnika.
Haavatavus tuleneb juba vabastatud mĂ€lu ploki (use-after-free) juurde pÀÀsemisest io_uring alam sĂŒsteemis, mis tekib ringbufferi registreerimise ja vabastamise kĂ€igus, kui seda on loodud lipuga IORING_REGISTER_PBUF_RING. Kui teostatakse mmap() operatsioon vĂ€listatud puhvri ĂŒle, jÀÀb see pĂ€rast vabastamise operatsiooni teostamist (IORING_UNREGISTER_PBUF_RING) kasutaja ruumi peegelduseks. Kasutades seda omadust, suudab rĂŒndaja lugeda ja kirjutada andmeid tuuma mĂ€lujaotuse sĂŒsteemi tagastatud mĂ€lu lehtedele.
Probleem ilmneb alates Linuxi versiooni 6.4 vÀljaandmisest ja on kÔrvaldatud versioonides 6.7 ja 6.6.5, samuti Ubuntu 22.04 ja 23.10 jaoks ettevalmistatud versioonis 6.5.0-21. TÀhelepanuvÀÀrne on, et pÔhiydarmis probleem lahendati detsembris 2023, projekti Google Zero kaudu avati teave haavatavuse signaali kohta 8. jaanuaril ning paranduspakett Ubuntu 6.5 jaoks loodi alles 22. veebruaril 2024. Muudes distributsioonides saab veaparandust ja haavatavust jÀlgida lehtedel: Debian, Gentoo, RHEL, SUSE, Fedora, Arch.
Esimene eksploit manipuleerib suure hulga rĂŒndaja kontrolli all olevate mĂ€lu lehekĂŒlgede loomisega, et tuvastada mĂ€luaadresside paigutus ydarmis ja pÀÀseda ligipÀÀsu naaberfĂŒĂŒsilistele mĂ€lu lehekĂŒlgedele, kasutades majakaks teatud viisil tĂ€idetud vĂ”rgu soklite struktuuride sisu. Eksploidis on koodi kĂ€ivitamiseks kaasatud "gadget" (olekute jada, mis eksisteerib ydarmis), mis toob esile funktsiooni call_usermodehelper_exec, mis on mĂ”eldud protsesside kĂ€ivitamiseks kasutaja ruumis ydarmist.
Teine eksploit tugineb sellele, et kui kĂ”ik slab-plokid vahemĂ€lus on tĂ€is (nĂ€iteks, kui sama faili avatakse korduvalt), siis vabanenud mĂ€lu lehed, millele rĂŒndaja pÀÀseb, kasutatakse mĂ€luhaldussĂŒsteemi poolt uue slab-ploki loomiseks ning kĂ”ik uued failistruktuurid hakkavad selle ploki sees paiknema. Seega satuvad mĂ”ned failistruktuurid mĂ€lu lehtedele, millele rĂŒndaja vĂ”ib lugeda ja kirjutada. Ekspluateerimine seisneb sel juhul selles, et korraldatakse vajalik faili sattumine failivahemĂ€llu ja asendatakse sellega seotud failistruktuurides f_mode vĂ€lja vÀÀrtus, mis mÀÀrab juurdepÀÀsuĂ”igused, vĂ”imaldades vajalikku sĂŒsteemifaili, nĂ€iteks /etc/passwd, kirjutamiseks kĂ€tte saada.
Allikas: opennet.ru
