Copy Fail — haavatavus Linuxi tuumas, mis vĂ”imaldab omada root'i enamikus jaotustes

Xint'i teadlased tuvastasid Linuxi tuumas haavatavuse (CVE-2026-31431), mis vĂ”imaldab mittepriviligeeritud kasutajal saada juur-access sĂŒsteemi. Probleemile on antud koodnimi Copy Fail. Eksploaidi prototĂŒĂŒp on saadaval. Haavatavuse Ă€rakasutamise vĂ”imalust on demonstreeritud Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 ja SUSE 16, kuid mĂ€rgitakse, et ka teiste jaotiste, sealhulgas Debian, Arch, Fedora, Rocky ja Alma, tuumade paketid on probleemile vastuvĂ”tlikud, kuid neid eraldi ei testitud.

Haavatavus on pÔhjustatud loogilisest veast Linuxi tuuma crypto API-s (AF_ALG), mis tehti 2017. aastal optimeerimise kÀigus, millega eemaldati liigsed puhvrid lÀbi in-place blokkiƥifreeeringu AEAD (Authenticated Encryption with Associated Data) toimingute. Probleem tekkis mÔtlemata splice() funktsiooni kasutamisest, mis edastab andmeid failidesse ja kanalitesse (pipe) ilma kopeerimiseta, edastades viiteid lehe vahemÀlu elementidele. PÀrast optimeerimise tegemist kirjutati AF_ALG soketisse faili edastamisel scatterlist-struktuuri mitte viide eraldi puhvrile, vaid otsene viide tuuma lehe vahemÀlu elementidele koos faili andmetega.

Hiljem, AEAD dekodeerimise kĂ€igus, segunesid viidatud autentimise sildi andmed («authentication tag») RX-puhvrisse kopeeritavate lisasertifitseeritud andmete (AAD, Associated Authenticated Data) ja krĂŒpteeritud tekstiga, ning autentimise sildi kirjutamise offset arvutati kopeeritud andmete suhtes ilma nĂ”uetekohaste kontrollideta, mis vĂ”imaldas ĂŒle kirjutada suvalised piirkonnad lehe vahemĂ€lus.

Haavatavus annab vĂ”imaluse iga pĂ€ringu korral kirjutada 4 bitti valitud offsetiga, mis vĂ”imaldab rĂŒndajal saata pĂ€ringute seeria kaudu muuta lehe vahemĂ€lu sisu mis tahes faili peale sĂŒsteemis, mis on lugemiseks saadaval, pĂ€rast selle vahemĂ€llu paigutamist. Kuna igasugustes lugemisoperatsioonides antakse sisu esmajĂ€rjekorras lehe vahemĂ€lust, saab tuum vĂ”i protsess, lugedes andmeid failist, mitte tegelikku, vaid asendatud andmeid, mida vĂ”ib kasutada koodi sisestamiseks kĂ€ivitatavatesse failidesse vĂ”i laaditavatesse jagatud teekidesse.

Root-Ă”igustega koodi kĂ€itamiseks piisab, kui muuta igasuguse suid root-iga tĂ€idetava faili lehekĂŒljekaupa vahemĂ€lu.
Pakutud eksploit kasutab tĂ€idetava faili /usr/bin/su lugemist ja seda faili laaditud sisu muutmist lehekĂŒljekaupa vahemĂ€lus, et asendada see oma koodiga. JĂ€rgmise utiliidi „su“ kĂ€ivitamise korral laaditakse mĂ€llu mitte originaalne tĂ€idetav fail salvestuselt, vaid muudetud koopia lehekĂŒljekaupa vahemĂ€lust.

Ekspoit on universaalne, ei vaja kohandamist distributsioonide vĂ”i kerneliversioonide jĂ€rgi ning seda saab kasutada kĂ”ikide distributsioonidega. Kuna konteinerite eraldamiseks kasutatakse kĂ”igi konteinerite jaoks ĂŒhist lehekĂŒljekaupa vahemĂ€lu, saab haavatavust kasutada host-ĂŒmbrusse pÀÀsemiseks konteinerist (hiljem lubatakse avaldada ekspoit, mis ĂŒletab eraldatuse Kuberneteses).

Haavatavus tuvastati AI abil umbes tunni katsetustega tuumakryptosĂŒsteemi koodi analĂŒĂŒsimisel. Probleem ilmneb alates Linuxi versioonist 4.14, mis ilmus 2017. aastal, ja on kĂ”rvaldatud versioonides 6.18.22, 6.19.12 ja 7.0. Haavatavuste kĂ”rvaldamise staatused erinevates distributsioonides on hinnatavad nende lehekĂŒlgede andmetel: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora, ROSA.

Kaitse möödaamine on kernelimooduli algif_aead vĂ€lja lĂŒlitamine, mida kasutatakse OpenSSL-is afalg mootori ekspliciitse sisselĂŒlitamise ajal ja eraldi rakendustes (selliste kĂ€ivitatud rakenduste olemasolu saab kontrollida kĂ€sku „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 hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster