Haavatavused PAM-is ja libblockdev-s, mis vĂ”imaldavad saada sĂŒsteemis root Ă”igusi

Qualys on tuvastanud haave (CVE-2025-6019) teegis libblockdev, mis vĂ”imaldab udisks taustaprotsessi manipuleerimise kaudu saada sĂŒsteemis root Ă”igused. Ekspluateerimise prototĂŒĂŒbi töö nĂ€idati Ubuntu, Debian, Fedora ja openSUSE Leap 15 keskkondades.

Protsessi udisks kasutatakse peaaegu kĂ”igis Linuxi jagunemistes ning see pakub D-Bus liidest andmete hoidmisega seotud toimingute, nĂ€iteks monteerimise ja vormindamise, tĂ€itmiseks. Toimingute sooritamiseks kutsub udisks esile libblockdev teegi funktsioonid. Udisks on vaikimisi avatud ainult „allow_active“ konteksti kasutajatele, st neile, kes omavad fĂŒĂŒsilist juurdepÀÀsu arvutile ja on sisse loginud lĂ€bi lokaalse konsooli vĂ”i alustanud graafilist seanssi. Kaugjuhtimisega kasutajad, nĂ€iteks ssh kaudu ĂŒhenduv, ei kuulu sellesse konteksti ja ei saa otse haavatavust Ă€ra kasutada.

Selle piirangu ĂŒletamiseks saab kasutada trikki, mis vĂ”imaldab tĂ”sta autentimise taset „allow_active” kaudu kasutades systemctl teenuse kĂ€ivitamise manipuleerimist, mida polkitd tĂ”lgendab kui kohalikku seanssi. Meetodi tuum on see, et polkitd mÀÀrab fĂŒĂŒsilise juurdepÀÀsu olemasolu ning mÀÀrab taseme „allow_active” kaudsete tĂ”endite pĂ”hjal, millele on vĂ”imalik mĂ”ju avaldada. Meetodi piirangud seisnevad selles, et polkitd petmiseks peab sĂŒsteemis juba olema aktiivne kohalik kasutaja seanss fĂŒĂŒsilise juurdepÀÀsuga.

Teine viis „allow_active” Ă”iguste saamiseks on haavatavuse (CVE-2025-6018) ekspluateerimine PAM (Pluggable Authentication Modules) sĂŒsteemis, mille uurijad Qualys Ă”ppisid libblockdev haavatavuse analĂŒĂŒsi kĂ€igus. Haavatavus vĂ”imaldab igal kasutajal, sealhulgas SSH kaudu sisse loginud, teostada toiminguid „allow_active” kontekstis. Probleem on spetsiifiline PAM seadistustele openSUSE Leap 15 ja SUSE Linux Enterprise 15 keskkondades ning ilmneb ainult nendes jagunemistes.

OpenSUSE ja SUSE moodulis pam_env on vaikimisi lubatud faili ~/.pam_environment lugemine. Selle faili kaudu saab kasutaja seada keskkonnamuutujad XDG_SEAT=seat0 ja XDG_VTNR=1, mis töödeldes peetakse kasutaja fĂŒĂŒsilise kohalolu mĂ€rgiks, isegi kui sisenemine toimub SSH kaudu. Moodulit pam_env kutsutakse ĂŒles ka SSH-ĂŒhenduse loomisel Debian 12 ja Ubuntu 24.04 (Debian 13 ja Ubuntu 24.10+ versioonides on see vĂ€lja lĂŒlitatud), kuid nende distributsioonide keskkonnamuutujate seadmine ei saa tĂ”sta juurdepÀÀsutaset „allow_active”, kuna pam_env kutsub esile pĂ€rast pam_systemd mooduli laadimist ning seatud keskkonnamuutujad ei saa seansi parameetreid mĂ”jutada.

Mis puutub libblockdev haavatavusesse, siis saab rĂŒndaja mountida mis tahes failisĂŒsteemi pildi loop-reĆŸiimis, paigutades sellesse pildi SUID-rooti omadustega kĂ€ivitatava faili vĂ”i erilise seadme (/dev/mem), et saada madala taseme juurdepÀÀs ketastele vĂ”i mĂ€lule. Selliste rĂŒnnakute vĂ€ltimiseks mountib sĂŒsteem failisĂŒsteemi pildid nosuid ja nodev lipukestega, kuid libblockdev haavatavus vĂ”imaldab mountida pildi ilma nosuid ja nodev lipukesteta. Haavatavuse olemus seisneb selles, et udisks vĂ”imaldab kasutajal, kellel on juurdepÀÀs „allow_active”, muuta oma failisĂŒsteemide suurust ning libblockdev mountib failisĂŒsteemi ajutiselt ilma nosuid ja nodev lipukesteta.

Seega rĂŒnnak seisneb loop-seadmestiku loomises XFS-failisĂŒsteemi pildi pĂ”hjal, kuhu on paigutatud suid root-fail, loop-seadmestiku suuruse muutmise operatsiooni initsiimimises ja selle mountimise jĂ€lgimises katalooge /tmp/blockdev*: victim> killall -KILL gvfs-udisks2-volume-monitor victim> udisksctl loop-setup —file ./xfs.image —no-user-interaction Mapped file ./xfs.image as /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: Error resizing filesystem on /dev/loop0: Failed to unmount ‘/dev/loop0’ after resizing it: target is busy -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) groups=65534(nobody)

libblockdev'i haavatavus on seni parandatud ainult patch'ide kujul. Paketi uue versiooni staatuse vĂ”i paranduste ettevalmistamise kontrollimiseks jaotustes saab kĂŒlastada jĂ€rgmisi lehti (kui leht ei ole saadaval, tĂ€hendab see, et jaotuse arendajad ei ole veel probleemi arutamiseni jĂ”udnud): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo ja Arch (1, 2). Haavatavuse blokeerimiseks saab kasutada vahemeetmeid, muutes juurdepÀÀsureeglit operatsioonile „org.freedesktop.udisks2.modify-device” polkit'is, muutes failis /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy parameetri „allow_active” vÀÀrtuse „jah” pealt „auth_admin” peale.

Lisaks vĂ”ib mĂ€rkida mĂ”ni tund tagasi avalikustatud haavatavus (CVE-2025-6020) pakendis linux-pam, mis vĂ”imaldab lokaalsel kasutajal saada root Ă”igused. Moduul pam_namespace ei kontrollinud Ă”igesti kasutaja kontrolli all olevaid failiteedesid, mis vĂ”imaldas sĂŒmboolsete linkide manipulatsioonide ja vĂ”istluse olukorra saavutamise kaudu privileegidega failide ĂŒlekirjutamist sĂŒsteemis. Haavatavus on kĂ”rvaldatud linux-pam vĂ€ljalaskeversioonis 1.7.1. Paketi uue versiooni vĂ”i paranduste ettevalmistamise kontrollimiseks jaotustes saab kĂŒlastada jĂ€rgmisi lehti: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo ja Arch (1, 2).

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster