Copy Fail — ranjivost u Linux jezgru koja omogućuje dobivanje root pristupa u većini distribucija

Istraživači iz tvrtke Xint otkrili su ranjivost u Linux jezgru (CVE-2026-31431) koja omogućuje neprivilegiranom korisniku da dobije root pristup sustavu. Problem je dobio kodno ime Copy Fail. Prototip exploit-a je dostupan. Mogućnost iskorištavanja ranjivosti prikazana je na Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 i SUSE 16, no zabilježeno je da su paketi s jezgrom iz drugih distribucija, uključujući Debian, Arch, Fedora, Rocky i Alma, također podložni problemu, ali nisu posebno testirani.

Ranjivost je uzrokovana logičkom pogreškom u crypto API (AF_ALG) Linux jezgru, koja se dogodila prilikom uvođenja optimizacije 2017. godine koja uklanja suvišno bufferiranje izvođenjem operacija blok šifriranja AEAD (Authenticated Encryption with Associated Data) na licu mjesta. Problem se pojavio zbog nepromišljene upotrebe funkcije splice(), koja prenosi podatke između datotečnih deskriptera i cijevi (pipe) bez kopiranja, tako da prenosi reference na elemente u stranicnom kešu. Nakon uvođenja optimizacije, prilikom prijenosa datoteke u AF_ALG soket za dešifriranje, u scatterlist strukturu se nije zapisivala referenca na zaseban buffer, nego izravna referenca na elemente stranicnog keša jezgre s podacima datoteke.

Kasnije, tijekom dešifriranja AEAD, miješali su se referentni podaci autentifikacijskog taga ('authentication tag') s kopiranim dodatnim autentificiranim podacima (AAD, Associated Authenticated Data) u RX-bufferu i šifriranim tekstom, dok se offset za operaciju pisanja u autentifikacijski tag izračunavao u odnosu na kopirane podatke bez odgovarajućih provjera, što je omogućilo prepisivanje proizvoljnih područja u stranicnom kešu.

Ranjivost omogućava prepisivanje 4 bajta na odabranom offsetu s svakim zahtjevom, što napadaču omogućuje da putem slanja niza zahtjeva promijeni sadržaj bilo koje datoteke u sustavu koja je dostupna za čitanje, prethodno osiguravajući njezino stavljanje u keš. Budući da se prilikom bilo kakvih operacija čitanja iz datoteka sadržaj najprije vraća iz stranicnog keša, nakon zamjene informacija u stranicnom kešu, jezgra ili proces prilikom čitanja podataka iz datoteke dobit će ne stvarne, nego zamijenjene podatke, što može poslužiti za umetanje koda u izvršne datoteke ili učitane dijeljene biblioteke.

Da biste izvršili kód s root privilegijama, dovoljno je promijeniti stranicu keša za bilo koju izvršnu datoteku s suid root oznakom.
U predloženom eksploitu vrši se čitanje izvršne datoteke /usr/bin/su i modifikacija sadržaja te datoteke učitanog u stranicu keša s ciljem umetanja vlastitog koda. Kada se kasnije pokrene alat 'su', u memoriju neće biti učitana originalna izvršna datoteka s diska, već izmijenjena kopija iz stranice keša.

Eksploit je univerzalan, ne zahtijeva prilagodbu za distribucije ili verzije jezgre i može se koristiti s bilo kojim distribucijama. Pošto se prilikom korištenja kontejnerske izolacije za sve kontejnere koristi zajednički keš stranica, ranjivost se može iskoristiti za pristup host okruženju iz kontejnera (kasnije će biti objavljen eksploit za zaobilaženje izolacije u Kubernetesu).

Ranjivost je otkrivena uz pomoć AI-a nakon otprilike sat vremena eksperimentiranja s analizom koda kriptosustava jezgre. Problem se javlja od jezgre Linux 4.14, objavljene 2017. godine, a ispravljen je u jezgrama 6.18.22, 6.19.12 i 7.0. Status ispravke ranjivosti u distribucijama može se procijeniti na tim stranicama: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora, ROSA.

Kao obilaženje zaštite, možete onemogućiti kernel modul algif_aead, koji se koristi u OpenSSL prilikom eksplicitnog uključivanja afalg engine-a i u pojedinim aplikacijama (proverite ima li takvih pokrenutih aplikacija pomoću komande 'lsof | grep AF_ALG'):

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

    Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster