
Une preuve de concept pour CVE-2025-27591, une escalade de privilèges locale dans Below < v0.9.0
Preuve de concept pour CVE-2025-27591, une vulnérabilité qui permet à des utilisateurs locaux non privilégiés d'élever leurs privilèges à root via des attaques par lien symbolique.
La vulnérabilité affecte le service Below (versions antérieures à v0.9.0). Il crée un répertoire /var/log/below avec des permissions mondialement accessibles en écriture (0777), permettant à des utilisateurs locaux non privilégiés de déplacer des liens symboliques et de manipuler des fichiers critiques tels que /etc/shadow, ce qui entraîne une élévation à root.
Un utilisateur local non privilégié peut élever ses privilèges à root en :
/var/log/below/ doit avoir des permissions mondialement accessibles en écriture (0777) et contenir le fichier error_root.log.foo@victim:~$ ls -l /var/log/ | grep below
drwxrwxrwx 3 root root 4096 Jul 8 20:45 below
Nous aurons besoin de privilèges au niveau des sudoers.
foo@victim:~$ sudo -l
Matching Defaults entries for jacob on victim:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User foo may run the following commands on victim:
(ALL : ALL) NOPASSWD: /usr/bin/below
Une fois que nous avons le fichier poc.sh, nous lui donnerons les autorisations nécessaires, l'exécuterons, et nous serons root.
foo@victim:/tmp$ chmod +x poc.sh
foo@victim:/tmp$ ./poc.sh
evil@victim:/tmp# id
uid=0(evil) gid=0(root) groups=0(root)
Mettez à niveau vers Below v0.9.0 ou version ultérieure, qui supprime la logique chmod non sécurisée et s'appuie sur des fonctionnalités d'unité systemd comme LogsDirectory=below