NjĂ« vulnerabilitet Ă«shtĂ« identifikuar nĂ« bĂ«rthamĂ«n Linux, i ngjashĂ«m me vulnerabilitetet Copy Fail, Dirty Frag dhe Fragnesia, qĂ« lejon njĂ« pĂ«rdorues jo privilegjuar tĂ« fitojĂ« tĂ« drejta root duke rishkruar tĂ« dhĂ«na nĂ« ĐșĐ”Ń-in e faqes. Vulnerabilitetet kanĂ« marrĂ« emrin kodues DirtyDecrypt (problemi po ashtu pĂ«rmendet si DirtyCBC). NjĂ« prototip i eksploatimit Ă«shtĂ« nĂ« dispozicion.
Identifikuesi CVE në shënimin e eksploatimit nuk përmendet, vetëm se hulumtuesit zbuluan problemin më 9 maj, pas së cilës i raportuan zhvilluesve të bërthamës, të cilët u përgjigjën se zbulimi i tyre përsërit një raport tjetër për një vulnerabilitet që ishte tashmë i rregulluar. Pasi patchesi me korrigjimin ishte përfshirë tashmë në bërthamë, hulumtuesit vendosën të publikojnë eksploatimin e zhvilluar prej tyre. Nga përshkrimi brenda eksploatimit, përdoret vulnerabiliteti CVE-2026-31635, një korigjim për të cilin u miratua në bërthamë në prill dhe u përfshi në degën 7.0.0 dhe në versionin e formuar më 18 prill 6.18.23. Problemi manifeston vetveten duke filluar nga bërthama 6.16.
As with the Dirty Frag vulnerability series, the new vulnerability exists in the RxRPC driver, which implements the AF_RXRPC socket family and the corresponding RPC protocol operating over UDP. The issue arises from an error in data size checking in the function rxgk_verify_response() â instead of checking "if (auth_len > len)" the code specified "if (auth_len < len)", which led to the passing of data larger than allowed to the function rxgk_decrypt_skb(). During the execution of the function rxgk_decrypt_skb(), data decryption was performed by substituting changes directly into the page cache to avoid unnecessary buffering. Due to the incorrect size check, there was an opportunity to overwrite data in the page cache at the chosen offset.
Shfrytëzimi i kësaj dobësie përfshin leximin e skedarit të programit me flagun suid root (për ta ruajtur atë në cache-n e faqes) dhe zëvendësimin në cache-n e faqes të pjesës së kodit të programit me kodin për ekzekutimin e /usr/bin/sh. Ekzekutimi i mëvonshëm i programit do të shkaktojë ngarkimin në memorie të një kopje të ndryshuar nga cache, jo të skedarit origjinal ekzekutues nga disku. Programet si suid në shfrytëzim përfshijnë mundësinë e përdorimit të "/usr/bin/su", "/bin/su", "/usr/bin/mount", "/usr/bin/passwd" dhe "/usr/bin/chsh".
Për shfrytëzimin e dobësisë, gjatë ndërtimit të bërthamës duhet të jetë aktiv opsioni CONFIG_RXGK, dhe për ngarkim automatik duhet të jetë i disponueshëm moduli i bërthamës rxrpc.ko (në disa sisteme ai nuk është ndërtuar). Statusi i rregullimit të dobësive në shpërndarje mund të vlerësohet në këto faqe: Debian, Ubuntu, SUSE/openSUSE, RHEL, Arch, Fedora. Si një trajtim alternativ për mbrojtje, mund të bllokohet ngarkimi i modulit të bërthamës rxrpc:
sh -c "printf 'install rxrpc /bin/false\n' > /etc/modprobe.d/dirtydecrypt.conf; rmmod rxrpc 2>/dev/null; true"
Së tepërmi, mund të theksohet publikimi në listën e dërgimeve nga zhvilluesit e bërthamës Linux të patch-eve, që plotësisht ç aktivizojnë optimizimet në crypto API (AF_ALG), që përdorin qasje direkte në caches të faqeve gjatë dekriptimit duke përdorur algoritet "skcipher" dhe "aead". Këto optimizime përjashtojnë mbushjen e tepërt të të dhënave, por krijojnë rreziqe për shfaqjen e dobësive serioze. Pritet që çaktivizimi i tyre do të shkaktojë vetëm një rënie të vogël të performancës për shkak të paraqitjes së një operacioni shtesë të kopjimit në një tampon të veçantë. Patch-et janë pranuar nga mbështetësit e nën-sistemit crypto API dhe janë përfshirë në degën "cryptodev", ku zhvillohen mundësitë për transferimin në përbërjen kryesore të lëshimeve të ardhshme të bërthamës Linux.
Burimi: opennet.ru
