Kwetsbaarheden in PAM en libblockdev die root-rechten in het systeem mogelijk maken

Het bedrijf Qualys heeft een kwetsbaarheid (CVE-2025-6019) ontdekt in de libblockdev-bibliotheek, waardoor iemand via manipulaties met het achtergrondproces udisks rootrechten in het systeem kan verkrijgen. Een prototype van de exploit is gedemonstreerd in Ubuntu, Debian, Fedora en openSUSE Leap 15.

Het udisks-proces wordt in vrijwel alle Linux-distributies gebruikt en biedt een D-Bus-interface voor het uitvoeren van bewerkingen met opslagmedia, zoals mounten en formatteren. Voor het uitvoeren van acties met opslagmedia roept udisks functies van de libblockdev-bibliotheek aan. Toegang tot udisks is standaard alleen geopend voor gebruikers die functioneren in de context van 'allow_active', dat wil zeggen voor degenen die fysieke toegang tot de computer hebben en zijn ingelogd via de lokale console of een grafische sessie hebben gestart. Gebruikers die op afstand verbinding maken, bijvoorbeeld via ssh, vallen niet in deze context en kunnen de kwetsbaarheid niet direct uitbuiten.

Om deze beperking te omzeilen, kan er een truc worden toegepast die het authenticatieniveau naar 'allow_active' verhoogt door manipulaties met het starten van de systemctl-hulpprogramma voor de gebruikersservice, wat door polkitd zal worden gezien als een teken van een lokale sessie. De essentie van de methode is dat polkitd de aanwezigheid van fysieke toegang bepaalt en het niveau 'allow_active' toekent op basis van indirecte aanwijzingen waarop invloed kan worden uitgeoefend. Beperkingen van de methode zijn dat het voor het misleiden van polkitd vereist is dat er al een actieve sessie van een lokale gebruiker met fysieke toegang in het systeem is.

De tweede methode om 'allow_active'-rechten te verkrijgen is door het uitbuiten van de kwetsbaarheid (CVE-2025-6018) in PAM (Pluggable Authentication Modules), die onderzoekers van Qualys hebben ontdekt tijdens de analyse van de kwetsbaarheid in libblockdev. De kwetsbaarheid stelt elke gebruiker, inclusief degenen die via SSH zijn verbonden, in staat om bewerkingen uit te voeren in de context van 'allow_active'. Het probleem is specifiek voor PAM-instellingen in openSUSE Leap 15 en SUSE Linux Enterprise 15 en manifesteert zich alleen in deze distributies.

In de pam_env-module van openSUSE en SUSE is het standaard toegestaan om het bestand ~/.pam_environment te lezen. Via dit bestand kan de gebruiker omgevingsvariabelen instellen zoals XDG_SEAT=seat0 en XDG_VTNR=1, die bij verdere verwerking zullen worden geĆÆnterpreteerd als een teken van fysieke aanwezigheid van de gebruiker, zelfs als de inlog feitelijk via SSH geschiedt. De pam_env-module wordt ook aangeroepen bij verbinding via ssh in Debian 12 en Ubuntu 24.04 (in Debian 13 en Ubuntu 24.10+ is deze uitgeschakeld), maar het instellen van omgevingsvariabelen in deze distributies kan niet worden gebruikt om de toegangsrechten te verhogen tot 'allow_active', aangezien pam_env wordt aangeroepen in de laatste fase na het laden van de pam_systemd-module en de ingestelde omgevingsvariabelen geen invloed kunnen hebben op de sessieparameters.

Wat betreft de kwetsbaarheid in libblockdev, kan een aanvaller een afbeelding van een willekeurig bestandssysteem in loop-modus koppelen door een uitvoerbaar bestand met de SUID-root-vlag of een speciaal apparaat (/dev/mem) voor laag-niveau toegang tot schijven of geheugen in deze afbeelding te plaatsen. Om dergelijke aanvallen te blokkeren, worden FS-afbeeldingen door het systeem gekoppeld met de flags nosuid en nodev, maar de kwetsbaarheid in libblockdev maakt het mogelijk om de afbeelding te koppelen zonder de nosuid- en nodev-vlaggen. De essentie van de kwetsbaarheid is dat udisks een gebruiker met toegangsniveau 'allow_active' toestaat om de grootte van zijn bestandssystemen te wijzigen en dat libblockdev tijdelijk FS koppelt zonder de nosuid- en nodev-vlaggen tijdens deze operaties.

De aanval is dus gericht op het creƫren van een loop-apparaat op basis van een FS-afbeelding van XFS, waarin een suid-root bestand is geplaatst, het initiƫren van de operatie om het formaat van het loop-apparaat te wijzigen en het volgen van het moment waarop het wordt gekoppeld aan de map /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)

De kwetsbaarheid in libblockdev is tot nu toe alleen verholpen in de vorm van patches. U kunt de status van de nieuwe versie van het pakket of de voorbereidingen voor een fix in de distributies controleren op de volgende pagina's (als de pagina niet toegankelijk is, betekent dit dat de ontwikkelaars van de distributie nog niet zijn begonnen met het bekijken van het probleem): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo en Arch (1, 2). Als workaround voor het blokkeren van de kwetsbaarheid kunt u de toegangsregel voor de operatie ā€žorg.freedesktop.udisks2.modify-deviceā€ in polkit aanpassen door in het bestand /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy de waarde van de parameter ā€žallow_activeā€ van ā€žyesā€ naar ā€žauth_adminā€ te wijzigen.

Daarnaast is er enkele uren geleden een kwetsbaarheid (CVE-2025-6020) in het linux-pam pakket onthuld, die een lokale gebruiker in staat stelt root-toegang te verkrijgen. De pam_namespace-module controleerde niet op de juiste wijze de door de gebruiker beheerde bestandspaden, waardoor het mogelijk was om via manipulaties met symbolische links en het creƫren van een race condition geprivilegieerde bestanden in het systeem te overschrijven. De kwetsbaarheid is verholpen in de uitgave van linux-pam 1.7.1. U kunt de status van de nieuwe versie van het pakket of de voorbereidingen voor een fix in de distributies controleren op de volgende pagina's: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo en Arch (1, 2).

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster