SÄrbarheter i PAM och libblockdev som möjliggör root-Ätkomst i systemet

Företaget Qualys har upptÀckt en sÄrbarhet (CVE-2025-6019) i biblioteket libblockdev, som möjliggör att genom manipulation av bakgrundsprocessen udisks fÄ root-rÀttigheter i systemet. En prototyp av exploiten har demonstrerats i Ubuntu, Debian, Fedora och openSUSE Leap 15.

Processen udisks anvĂ€nds i stort sett i alla Linux-distributioner och tillhandahĂ„ller ett D-Bus-grĂ€nssnitt för att utföra operationer med lagringsenheter, sĂ„som montering och formatering. För att utföra Ă„tgĂ€rder med lagringsenheter anropar udisks funktioner frĂ„n biblioteket libblockdev. Åtkomsten till udisks Ă€r som standard endast öppen för anvĂ€ndare som arbetar i kontexten 'allow_active', det vill sĂ€ga har fysisk Ă„tkomst till datorn och Ă€r anslutna via lokal konsol eller har startat en grafisk session. AnvĂ€ndare som ansluter pĂ„ distans, exempelvis via ssh, faller inte inom denna kontext och kan inte direkt utnyttja sĂ„rbarheten.

För att kringgÄ detta begrÀnsning kan en trick anvÀndas, vilket möjliggör att höja autentiseringnivÄn till 'allow_active' genom manipulation av startandet av anvÀndartjÀnsten med systemctl, vilken polkitd kommer att tolka som ett tecken pÄ en lokal session. KÀrnan i metoden Àr att polkitd bestÀmmer om det finns fysisk Ätkomst och tilldelar 'allow_active'-nivÄn baserat pÄ indirekta tecken som kan pÄverkas. BegrÀnsningarna med metoden Àr att för att lura polkitd krÀvs det att en lokal anvÀndarsession med fysisk Ätkomst redan Àr aktiv i systemet.

En andra metod för att fÄ 'allow_active'-rÀttigheter Àr att utnyttja sÄrbarheten (CVE-2025-6018) i PAM (Pluggable Authentication Modules), som forskare frÄn Qualys upptÀckte under analysen av sÄrbarheten i libblockdev. SÄrbarheten tillÄter vilken anvÀndare som helst, inklusive de som ansluter via SSH, att utföra operationer i kontexten 'allow_active'. Problemet Àr specifikt för PAM-instÀllningarna i openSUSE Leap 15 och SUSE Linux Enterprise 15, och upptrÀder endast i dessa distributioner.

I modulen pam_env i openSUSE och SUSE Àr lÀsning av filen ~/.pam_environment som standard aktiverad. Genom denna fil kan anvÀndaren stÀlla in miljövariablerna XDG_SEAT=seat0 och XDG_VTNR=1, vilka vid vidare bearbetning kommer att tolkas som tecken pÄ fysisk nÀrvaro av anvÀndaren, Àven om inloggningen faktiskt har gjorts via SSH. Modulen pam_env anropas Àven vid SSH-anslutning i Debian 12 och Ubuntu 24.04 (i Debian 13 och Ubuntu 24.10+ Àr den avstÀngd), men stÀllning av miljövariabler i dessa distributioner kan inte anvÀndas för att höja ÄtkomstnivÄn till "allow_active", eftersom pam_env anropas vid det slutliga steget efter att modulen pam_systemd har laddats och de angivna miljövariablerna kan inte pÄverka sessionens parametrar.

NÀr det gÀller sÄrbarheten i libblockdev kan en angripare montera en bild av ett godtyckligt filsystem i loop-lÀge genom att placera en körbar fil med SUID-rootflagga eller en speciell enhet (/dev/mem) för lÄg nivÄ Ätkomst till diskar eller minne i denna bild. För att blockera sÄdana attacker monteras filsystembilder av systemet med flaggorna nosuid och nodev, men sÄrbarheten i libblockdev möjliggör att montera en bild utan flaggorna nosuid och nodev. SÄrbarhetens kÀrna Àr att udisks tillÄter en anvÀndare med "allow_active"-ÄtkomstnivÄ att Àndra storlek pÄ sina filsystem och libblockdev temporÀrt monterar filsystemet utan att stÀlla in flaggorna nosuid och nodev under denna operation.

PĂ„ sĂ„ sĂ€tt reduceras attacken till att skapa en loop-enhet baserad pĂ„ en bild av filsystemet XFS, dĂ€r en suid root-fil placeras, initiera operationen för att Ă€ndra storlek pĂ„ loop-enheten och övervaka ögonblicket för dess montering i katalogen /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)

SÄrbarheten i libblockdev har hittills ÄtgÀrdats endast som patchar. För att kontrollera statusen för den nya versionen av paketet eller beredningen av en lösning i distributionerna kan du besöka följande sidor (om sidan Àr otillgÀnglig, betyder det att distributionens utvecklare Ànnu inte har pÄbörjat granskning av problemet): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo och Arch (1, 2). Som en workaround för att blockera sÄrbarheten kan du Àndra ÄtkomstrÀttningen till operationen "org.freedesktop.udisks2.modify-device" i polkit genom att Àndra vÀrdet för parametern "allow_active" i filen /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy frÄn "yes" till "auth_admin".

Det Àr ocksÄ vÀrt att notera den sÄrbarhet (CVE-2025-6020) i paketet linux-pam som avslöjades för nÄgra timmar sedan, vilket gör det möjligt för en lokal anvÀndare att fÄ root-rÀttigheter. Modulen pam_namespace kontrollerade inte korrekt filvÀgar som styrs av anvÀndaren, vilket gjorde det möjligt att genom manipulation av symboliska lÀnkar och uppnÄelse av ett tÀvlingsförhÄllande fÄ privilegierade filer i systemet att skrivas över. SÄrbarheten har ÄtgÀrdats i utgÄvan av linux-pam 1.7.1. För att kontrollera statusen för den nya versionen av paketet eller beredningen av en lösning i distributionerna kan du besöka följande sidor: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo och Arch (1, 2).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster