Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
NotCVE-2026-0014 — Prova de conceito e advisory para um path traversal CWE-22 no manipulador de arrastar e soltar do InputLeap, com etapas de reprodução, script de exploração e orientações de remediação. | Kitploit
Ferramentas/GitHubGitHub/cduram/notcve-2026-0014
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesTestes de Penetração
GitHubcduram/notcve-2026-0014

NotCVE-2026-0014

Prova de conceito e advisory para um path traversal CWE-22 no manipulador de arrastar e soltar do InputLeap, com etapas de reprodução, script de exploração e orientações de remediação.

Ver Repositório
17há 15h 11mAinda 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

Resumo

Produto: InputLeap v3.0.3
Fornecedor: input-leap
Vulnerabilidade: Path Traversal
CWE: CWE-22 Limitação Imprópria de um Nome de Caminho a um Diretório Restrito ('Path Traversal')

Descrição

O manipulador de arrastar-e-soltar do InputLeap tenta sanitizar nomes de arquivo encontrando o último separador de caminho e mantendo apenas a parte após ele. Quando nenhum separador é encontrado, a busca de string em C++ retorna um valor sentinela especial chamado npos para indicar falha. No entanto, o código nunca verifica esse sentinela antes de usar o resultado em cálculos aritméticos. Como npos é definido como o maior inteiro sem sinal possível, subtraí-lo causa wraparound silencioso e produz uma resposta aparentemente válida que está completamente errada: em vez de retornar apenas o nome do arquivo, ele retorna a string original inteira não sanitizada. Um atacante pode explorar isso criando uma mensagem onde uma entrada não possui separador enquanto outra contém um separador incompatível — a heurística global de detecção de separador do código é invertida, a busca falha silenciosamente, e ....\AppData...\Startup\evil.exe passa intacto. Essa string então é concatenada ao diretório de destino e entregue ao SO, que interpreta as sequências .. e grava o arquivo fora da pasta pretendida. A vulnerabilidade existe porque falta uma verificação defensiva para o caso de "não encontrado".

Passos para Reproduzir

  1. Habilite --enable-drag-drop no alvo (opt-in, padrão DESLIGADO).
  2. Como um peer conectado, inicie uma mensagem de transferência de arquivo por arrastar-e-soltar cujos dados de nome de arquivo embutidos contenham um caractere "/" em algum lugar do buffer (para forçar slash="/") enquanto o segmento real do nome do arquivo usa separadores "\", por exemplo, embutindo um "/" perdido anteriormente no blob de dados e um nome de arquivo de "..\..\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\evil.exe".
  • O find_last_of(slash, ...) de DragInformation::parseDragInfo retorna npos para a porção do nome de arquivo separada por "\", causando wraparound aritmético sem sinal e retornando o caminho completo não truncado.
  • DropHelper::writeToDir concatena esse caminho ao diretório de destino de soltar do usuário (padrão Desktop) e grava o arquivo sem canonicalização, colocando-o na pasta Startup.
  • No próximo login, evil.exe é executado como o usuário vítima.
  • Código Afetado

    /src/lib/inputleap/DragInformation.cpp
    /src/lib/inputleap/DropHelper.cpp

    Prova de Conceito ou Nada Feito

    Uma POC foi fornecida que suporta conexões TLS e sem criptografia com o servidor.

    input-leap-directory-traversal-poc.py

    Impacto

    Um atacante pode explorar essa vulnerabilidade para enviar um arquivo para um caminho arbitrário fora da pasta padrão ou atribuída. Isso pode levar à execução de código

    Remediação Sugerida

    1. Em DragInformation::parseDragInfo, substitua a heurística de detecção de barra por std::filesystem::path(filename).filename() para garantir que apenas o basename seja extraído.
    2. Em DropHelper::writeToDir, canonicalize o caminho final com std::filesystem::canonical e rejeite se ele não começar com destination.
    3. Rejeite nomes de arquivo contendo "..", bytes NUL, letras de unidade (X:), ou separadores iniciais.

    Linha do Tempo de Divulgação

    • 27 de julho de 2026 -- Tentativa de reportar ao projeto InputLeap, mas no dia anterior ao meu contato eles arquivaram o projeto. Reportado ao NotCVE.
    • 24 de setembro de 2026 -- NotCVE-2026-0014 Publicado.
    Baixar ferramenta