DirtyDecrypt — një tjetër vulnerabilitet i klasës Copy Fail, duke ofruar të drejtat root në Linux

Në kernelin Linux është zbuluar një dobësi, duke u ngjashme me dobësitë Copy Fail, Dirty Frag dhe Fragnesia, e cila lejon një përdorues jo privilegjuar të fitojë të drejta root duke ri-shkruar të dhënat në cache-n e faqeve. Dobësive i është dhënë emri kodik DirtyDecrypt (problemi gjithashtu përmendet si DirtyCBC). Një prototip eksploit është në dispozicion.

CVE-identifikatori nuk përmendet në shënimin e eksploitit, është vetëm e përmendur se studiuesit zbuluan problemin më 9 maj, pas së cilës ata iu njoftuan zhvilluesve të kernelit, të cilët përgjigjën se zbulimi i tyre është një kopje e një raporti tjetër mbi një dobësi që kishte tashmë një zgjidhje. Ndërkohë që patchi me zgjidhjen tashmë është përfshirë në kernel, studiuesit vendosën të publikojnë eksploitin e zhvilluar prej tyre. Sipas përshkrimit brenda eksploitit, ai përdor dobësinë CVE-2026-31635, për të cilën ishte pranuar një zgjidhje në kernel në prill dhe ishte përfshirë në versionin 7.0.0 të formuar më 18 prill 6.18.23. Problemi shfaqet duke filluar nga kernel 6.16.

Ashtu si në rastin e serisë së dobësive Dirty Frag, dobësia e re është e pranishme në driver-in RxRPC, që implementon familjen e sockeve AF_RXRPC dhe protokollin e njëjtë RPC që funksionon mbi UDP. Problemi shkaktohet nga një gabim në kontrollin e madhësisë së të dhënave në funksionin rxgk_verify_response() — në vend që të kontrollohej "if (auth_len > len)", në kod ishte e specifikuar "if (auth_len < len)", e cila çonte në kalimin në funksionin rxgk_decrypt_skb() të të dhënave me një madhësi më të madhe se e lejuara. Gjatë ekzekutimit të funksionit rxgk_decrypt_skb(), dekriptimi i të dhënave bëhej duke dërguar ndryshimet direkt në cache-n e faqeve për të shmangur buffering-un e tepërt. Për shkak të kontrollit të pasaktë të madhësisë, ekzistonte mundësia e ri-shkrimit të të dhënave në cache-n e faqeve me një offset të zgjedhur.

Shfrytëzimi i dobësisë ndodh duke lexuar skedarin e programit me flagun suid root (për të vendosur atë në cache-n e faqeve) dhe duke zëvendësuar një pjesë të kodit të programit me kodin për të ekzekutuar /usr/bin/sh në cache-n e faqeve. Ekzekutimi i mëtejshëm i programit do të çonte në ngarkimin e një skedari ekzekutiv jo origjinal nga disku, por një kopje të ndryshuar nga cache-n e faqeve. Si programe suid, eksploitin parashikon mundësinë e përdorimit të "/usr/bin/su", "/bin/su", "/usr/bin/mount", "/usr/bin/passwd" dhe "/usr/bin/chsh".

Për të shfrytëzuar këtë vulnerabilitet, duhet të jetë aktive opsioni CONFIG_RXGK gjatë ndërtimit të kerneli dhe moduli i kernelit rxrpc.ko duhet të jetë në dispozicion për ngarkim automatik (në disa sisteme ai nuk grumbullohet). Statusi i eliminimit të vulnerabiliteteve në shpërndarjet mund të vlerësohet në këto faqe: Debian, Ubuntu, SUSE/openSUSE, RHEL, Arch, Fedora. Si një mënyrë mbrojtëse, mund të bllokohet ngarkimi i modulit të kernelit rxrpc:

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

Gjithashtu, mund të përmendet publikimi në listën e shpërndarjes së zhvilluesve të kernelit Linux të patch-eve që çaktivizojnë plotësisht optimizimet në crypto API (AF_ALG) që përdorin qasje direkte në caches me faqe gjatë dekriptimit me algoritmet 'skcipher' dhe 'aead'. Këto optimizime përjashtojnë buferimin e panevojshëm të të dhënave, por krijojnë rreziqe për shfaqjen e vulnerabiliteteve të rënda. Pretendohet se çaktivizimi i tyre do të çojë vetëm në një ulje të lehtë të performancës për shkak të shfaqjes së një operacioni shtesë të kopjimit në një bufer të veçantë. Patch-ët janë pranuar nga mbikëqyrësi i nën-sistemit crypto API dhe janë përfshirë në degën 'cryptodev', e cila zhvillon mundësitë për t'u integruar në versionet e ardhshme të kernelit Linux.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster