Vulnerabilitetet në PAM dhe libblockdev, që lejojnë marrjen e të drejtave root në sistem

Kompania Qualys zbuloi një vulnerabilitet (CVE-2025-6019) në bibliotekën libblockdev, e cila lejon, përmes manipulimeve me procesin e prapambetjes udisks, të marrin të drejta root në sistem. Funksionaliteti i prototipit të exploit-it është demonstruar në Ubuntu, Debian, Fedora dhe openSUSE Leap 15.

Procesi udisks përdoret praktikisht në të gjitha shpërndarjet e Linux dhe ofron një ndërfaqe D-Bus për të kryer operacione me ruajtësit, si montimi dhe formatimi. Për të kryer veprime me ruajtësit, udisks thërret funksionet e bibliotekës libblockdev. Qasja në udisks, sipas parazgjedhjes, është e hapur vetëm për përdoruesit që punojnë në kontekstin "allow_active", dmth. ata që kanë qasje fizike në kompjuter dhe janë lidhur përmes konsolës lokale ose kanë nisur një seancë grafike. Përdoruesit që lidhen nga në distancë, për shembull përmes ssh, nuk bien në këtë kontekst dhe nuk mund të shfrytëzojnë direkt vulnerabilitetin.

Për të anashkaluar këtë kufizim, mund të përdoret një truk që lejon rritjen e nivelit të autentikimit në "allow_active" përmes manipulimeve me nisjen e shërbimeve të përdoruesit me utilitarin systemctl, i cili polkitd do ta perceptojë si dëshmi të një seance lokale. Thelbi i metodës është se polkitd përcakton praninë e qasjes fizike dhe i jep nivelin "allow_active" në bazë të treguesve të tërthorë, mbi të cilët mund të ndikojmë. Kufizimi i metodës është se për të mashtruar polkitd, duhet të ketë një seancë lokale përdoruesi me qasje fizike tashmë aktive në sistem.

Metoda e dytë për të marrë të drejtat "allow_active" është shfrytëzimi i vulnerabilitetit (CVE-2025-6018) në PAM (Pluggable Authentication Modules), të cilin hulumtuesit nga Qualys e zbuluan gjatë analizës së vulnerabilitetit në libblockdev. Vulnerabiliteti lejon çdo përdorues, përfshirë ata që lidhen përmes SSH, të kryejnë operacione në kontekstin "allow_active". Problemi është specifik për cilësimet PAM në openSUSE Leap 15 dhe SUSE Linux Enterprise 15, dhe shfaqet vetëm në këto shpërndarje.

Në modulin pam_env në openSUSE dhe SUSE, leximi i skedarit ~/.pam_environment është aktivizuar si parazgjedhje. Nëpërmjet këtij skedari, përdoruesi mund të caktuar variablat ambientale XDG_SEAT=seat0 dhe XDG_VTNR=1, të cilat gjatë përpunimit do të interpretohen si një tregues i pranisë fizike të përdoruesit, edhe nëse hyrja është bërë përmes SSH. Moduli pam_env gjithashtu aktivizohet gjatë lidhjes përmes ssh në Debian 12 dhe Ubuntu 24.04 (në Debian 13 dhe Ubuntu 24.10+ ai është çaktivizuar), por caktimi i variablave ambientale në këto distribucione nuk mund të përdoret për të rritur nivelin e aksesit në 'allow_active', pasi pam_env aktivizohet në fazën përfundimtare pas ngarkimit të modulit pam_systemd dhe variablat ambientalë të caktuar nuk mund të ndikojnë në parametrat e seancës.

Sa i përket dobësisë në libblockdev, një sulmues mund të monte një imazh të një sistemi skedarësh të rastësishëm në modalitetin loop, duke vendosur në këtë imazh një skedarin ekzekutiv me flag SUID root ose një pajisje speciale (/dev/mem) për akses të ulët në disqe ose memorie. Për të bllokuar sulme të tilla, imazhet e FS montohen nga sistemi me flag-et nosuid dhe nodev, por dobësia në libblockdev jep mundësinë për të montuar një imazh pa flag-et nosuid dhe nodev. Qëllimi i dobësisë është se udisks lejon përdoruesit me nivelin e aksesit 'allow_active' të ndryshojnë madhësinë e sistemeve të tyre skedarësh dhe libblockdev gjatë ekzekutimit të kësaj operacioni përkohësisht monte FS pa caktuar flag-et nosuid dhe nodev.

Kështu, sulmi përmbledh krijimin e një pajisjeje loop mbi bazën e imazhit të FS XFS, në të cilin ndodhet një skedar suid root, fillimin e operacionit të ndryshimit të madhësisë së pajisjes loop dhe ndjekjen e momentit të montimit të saj në katalogun /tmp/blockdev*: victim> killall -KILL gvfs-udisks2-volume-monitor victim> udisksctl loop-setup --file ./xfs.image --no-user-interaction Imazhi i montuar ./xfs.image si /dev/loop0. victim> while true; do /tmp/blockdev*/bash -c 'sleep 10; ls -l /tmp/blockdev*/bash' && break; done 2>/dev/null & victim> gdbus call --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/block_devices/loop0 --method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}' Error: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Gabim gjatë ndryshimit të madhësisë së sistemit të skedarëve në /dev/loop0: Dështoi të çmontonte '/dev/loop0' pas ndryshimit të madhësisë: objekti është i zënë -r-sr-xr-x. 1 root root 1406608 Jun 18 09:42 /tmp/blockdev.RSM429/bash victim> /tmp/blockdev*/bash -p victim# id uid=65534(nobody) gid=65534(nobody) euid=0(root) grupe=65534(nobody)

Vulnerabiliteti në libblockdev është korrigjuar deri tani vetëm në formën e patch-eve. Mund të verifikoni statusin e versionit të ri të paketës ose përgatitjen e një rregullimi në distribucionet e mëposhtme (nëse faqja nuk është e aksesueshme, atëherë zhvilluesit e distribucionit ende nuk kanë filluar të shqyrtojnë problemin): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo dhe Arch (1, 2). Si një zgjidhje për të bllokuar vulnerabilitetin, mund të ndryshoni rregullin e qasjes në operacionin "org.freedesktop.udisks2.modify-device" në polkit, duke ndryshuar në skedarin /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy vlerën e parametrave "allow_active" nga "yes" në "auth_admin".

Një vulnerabilitet i zbuluar disa orë më parë (CVE-2025-6020) në paketën linux-pam lejon një përdorues lokal të fitojë të drejtat root. Moduli pam_namespace nuk verifikonte siç duhet rrugët e skedareve të kontrolluara nga përdoruesi, gjë që mundësonte përmes manipulimeve me lidhjet simbolike dhe arritjen e një gjendjeje garuese të arrihen rishkrimi i skedarëve me privilegje në sistem. Vulnerabiliteti është eliminuar në versionin linux-pam 1.7.1. Mund të kontrolloni statusin e versionit të ri të paketës ose përgatitjen e një rregullimi në distribucionet e mëposhtme: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo dhe Arch (1, 2).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster