DirtyDecrypt — nova ranjivost klase Copy Fail, koja omogućuje root pristup u Linuxu

U Linux kernelu otkrivena je ranjivost koja, na sličan način kao i ranjivosti Copy Fail, Dirty Frag i Fragnesia, omogućuje neprivilegiranom korisniku da dobije root prava prepisivanjem podataka u stranici keša. Ranjivosti je dodijeljeno kodno ime DirtyDecrypt (problem se također spominje pod imenom DirtyCBC). Dostupan je prototip eksploita.

CVE identifikator u napomeni o eksploitu nije spomenut, navedeno je samo da su istraživači otkrili problem 9. svibnja, nakon čega su obavijestili programere jezgre, koji su odgovorili da njihovo otkriće duplicira drugi izvještaj o već ispravljenoj ranjivosti. Kako je zakrpa sa rješenjem već uključena u jezgru, istraživači su odlučili objaviti eksploat. Sudeći prema opisu unutar eksploita, koristi se ranjivost CVE-2026-31635, čije je rješenje prihvaćeno u jezgru u travnju i uključeno u verziju 7.0.0 i formiranu izdanje 6.18.23 od 18. travnja. Problem se pojavljuje počevši od jezgre 6.16.

Kao i u slučaju serije ranjivosti Dirty Frag, nova ranjivost prisutna je u RxRPC vozaču, koji implementira AF_RXRPC socket porodicu i odgovarajući RPC protokol koji radi preko UDP-a. Problem je uzrokovan greškom u provjeri veličine podataka u funkciji rxgk_verify_response() — umjesto provjere "if (auth_len > len)" u kodu je bila navedena "if (auth_len < len)", što je dovelo do slanja podataka u funkciju rxgk_decrypt_skb() s veličinom većom od dozvoljene. Tijekom izvršavanja funkcije rxgk_decrypt_skb() podaci su se dekriptirali s direktnim ubacivanjem promjena u stranice keša kako bi se izbjeglo nepotrebno buferiranje. Zbog neispravne provjere veličine postojala je mogućnost prepisivanja podataka u stranici keša na odabranoj poziciji.

Eksploatacija ranjivosti svodi se na čitanje datoteke programa s suid root oznakom (kako bi se zadržala u stranici keša) i zamjenu dijela koda programa u stranici keša s kodom za pokretanje /usr/bin/sh. Naknadno pokretanje programa dovest će do toga da u memoriju bude učitan neoriginalni izvršni datoteka s spremnika, već izmijenjena kopija iz stranice keša. Kao suid programi u eksploitu predviđena je mogućnost korištenja '/usr/bin/su', '/bin/su', '/usr/bin/mount', '/usr/bin/passwd' i '/usr/bin/chsh'.

Za iskorištavanje ranjivosti prilikom kompajliranja jezgre mora biti aktivna opcija CONFIG_RXGK, a za automatsko učitavanje dostupan modul jezgre rxrpc.ko (u nekim sustavima se ne kompajlira). Status ispravka ranjivosti u distribucijama može se procijeniti na sljedećim stranicama: Debian, Ubuntu, SUSE/openSUSE, RHEL, Arch, Fedora. Kao zaobilazno rješenje zaštite može se blokirati učitavanje modula jezgre rxrpc:

sh -c «printf ‘install rxrpc /bin/false\n’ > /etc/modprobe.d/dirtydecrypt.conf; rmmod rxrpc 2>/dev/null; true»

Dodatno se može primijetiti objava u mailing listi programera jezgre Linux patch-eva koji potpuno onemogućuju u crypto API (AF_ALG) optimizacije koje koriste direktan pristup stranici keša pri dekriptiranju koristeći algoritme „skcipher” i „aead”. Optimzacije isključuju suvišno bufiranje podataka, ali stvaraju rizike od ozbiljnih ranjivosti. Smatra se da će njihovo onemogućavanje dovesti samo do neznatnog smanjenja performansi zbog dodatne operacije kopiranja u poseban buffer. Patch-evi su prihvaćeni od strane podrške za pod-sustav crypto API i uključeni su u granu „cryptodev” u kojoj se razvijaju mogućnosti za prijenos u glavno izdanje budućih verzija jezgre Linux.

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