Copy Fail — haavatavus Linuxi sĂŒdamikus, mis vĂ”imaldab saavutada root-juurdepÀÀsu enamikus jaotustes

EttevĂ”tte Xint teadlased avastasid Linuxi sĂŒdamikus haavatavuse (CVE-2026-31431), mis vĂ”imaldab privileegideta kasutajal saada root-juurdepÀÀs sĂŒsteemile. Probleemile on antud koodnimi Copy Fail. Ekspluateerimise prototĂŒĂŒp on kergesti kĂ€ttesaadav. Haavatavuse ekspluateerimise vĂ”imalust on demonstreeritud Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 ja SUSE 16, kuid mĂ€rgitakse, et ka teiste jaotuste sĂŒdamikupaketid, sealhulgas Debian, Arch, Fedora, Rocky ja Alma, on probleemile vastuvĂ”tlikud, kuigi neid pole eraldi testitud.

Haavatavus tuleneb loogilisest veast Linuxi tuuma crypto API-s (AF_ALG), mis tekkis 2017. aastal tehtud optimeerimise tĂ”ttu, mille kĂ€igus eemaldati liigne puhverdus teostades otse (in-place) bloki krĂŒpteerimise AEAD (Authenticated Encryption with Associated Data) operatsioone. Probleem tekkis ettevaatamatu splice() funktsiooni kasutamise tĂ”ttu, mis edastab andmeid failides olevate kirjeldajate ja kanalite (pipe) vahel ilma kopeerimiseta, edastades viiteid elementidele lehtede vahemĂ€lus. PĂ€rast optimeerimist failide edastamisel AF_ALG soketisse dekrĂŒpteerimiseks kirjutati scatterlist struktuuri mitte viit eraldi puhvrile, vaid otsene viide tuuma lehtede vahemĂ€lu elementidele koos faili andmetega.

Edasi liikumisel AEAD dekrĂŒpteerimise protsessis segunesid viidatud autentimise sildiga ("authentication tag") andmed RX-puhvrisse kopeeritavate tĂ€iendavate autentitavate andmetega (AAD, Associated Authenticated Data) ja ĆĄifrantiga, ning autentimise sildile kirjutamise nihke arvutamine toimus kopeeritud andmete suhtes alusetute kontrollidega, mis vĂ”imaldas ĂŒle kirjutada suvalisi alasid lehe vahemĂ€lu.

Rikkumine vĂ”imaldab iga pĂ€ringu korral kirjutada 4 baiti valitud offset'is, mis vĂ”imaldab rĂŒndajal saadetud pĂ€ringute seeria kaudu muuta vahemĂ€lus mis tahes faili sisu, mis on sĂŒsteemis lugemiseks saadaval, enne kui see vahemĂ€lu pannakse. Kuna failidest lugemise ajal antakse sisu esmalt vahemĂ€lust, siis pĂ€rast teabe asendamist vahemĂ€lus saab tuum vĂ”i protsess andmeid lugedes mitte tegelikke, vaid asendatud andmeid, mida saab kasutada koodi paigutamiseks kĂ€ivitatavatesse faili failidesse vĂ”i jagatud teekidesse.

Koodi kÀivitamiseks root'i Ôigustes piisab vahemÀlu muutmisest mis tahes tÀidetava faili puhul, millel on suid root-i lipp.
Pakutud ekspluateerimises loetakse tÀidetavat faili /usr/bin/su ja muudetakse sellesse faili laaditud sisu vahemÀlus, et sisestada sinna oma kood. JÀrgneva 'su' utiliidi kÀivitamise korral laaditakse mÀllu mitte originaalne tÀidetav fail mÀlust, vaid muudetud koopia vahemÀlust.

Exploiti on universaalne, ei nĂ”ua kohandamist distributsioonide vĂ”i tuuma versioonide jaoks ning seda saab kasutada kĂ”igi distributsioonide puhul. Kuna konteinerite jaoks kasutatakse konteinerite isolatsiooni kaudu ĂŒhiseid lehekĂŒlje vahemĂ€lusid, saab haavatavust kasutada host-keskkonda konteinerist juurdepÀÀsu saamiseks (hiljem lubatakse avaldada exploiti, et vĂ€ltida isolatsiooni Kuberneteses).

Haavatavus tuvastati AI abil umbes tunni katsetuste jĂ€rel tuumakryptosĂŒsteemi koodi analĂŒĂŒsimisel. Probleem ilmneb alates Linuxi tuumast 4.14, mis ilmus 2017. aastal, ja see on lahendatud tuumades 6.18.22, 6.19.12 ja 7.0. Haavatavuste lahendamise staatus distributsioonides on hinnatav jĂ€rgmistes lehtedes: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora, ROSA.

Kaitse tĂ”rkeĂŒhendusena vĂ”ib keelata tuumamooduli algif_aead, mida kasutatakse OpenSSL-is afalg mootorite eksplicitse aktiveerimise korral ja eraldi rakendustes (taoliste kĂ€ivitatud rakenduste olemasolu saab kontrollida kĂ€suga «lsof | grep AF_ALG»):

    echo «install algif_aead /bin/false» > /etc/modprobe.d/disable-algif.conf
    rmmod algif_aead

    Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster