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
two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal — PoC em Python para travessia de diretórios CVE-2026-18907 no manipulador de download do TECNO Hi Browser. Inclui um servidor HTTP malicioso e um downloader ingênuo para demonstrar a correção. | Kitploit
Ferramentas/GitHubGitHub/hunt-benito/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal
Segurança AndroidAnálise de VulnerabilidadesExploraçãoPentesting de Apps MóveisExploração de Aplicações WebSegurança WebSegurança Móvel
GitHubhunt-benito/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal

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

two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal

PoC em Python para travessia de diretórios CVE-2026-18907 no manipulador de download do TECNO Hi Browser. Inclui um servidor HTTP malicioso e um downloader ingênuo para demonstrar a correção.

Ver Repositório
há 9 diasAinda não revisado

CVE-2026-18907 — Traversal de Caminho no Manipulador de Download do TECNO Hi Browser

Prova de conceito para CVE-2026-18907 (CVSS 7.5 Alta, CWE-23), uma vulnerabilidade de traversal de caminho relativo no recurso de download de arquivos do TECNO Hi Browser (com.talpa.hibrowser) versão 2.23.1.1. O navegador confiava em um nome de arquivo Content-Disposition controlado pelo atacante e o concatenava ao diretório de download sem sanitizar os separadores de caminho ou verificar o caminho canônico do resultado — portanto, sequências ../ no nome do arquivo permitiam que o corpo da resposta fosse gravado fora de Download/, em qualquer caminho que as permissões de armazenamento do navegador permitissem.

  • CVE: https://nvd.nist.gov/vuln/detail/CVE-2026-18907
  • Aviso do fornecedor (TECNO SRC): https://security.tecno.com/SRC/blogdetail/448?lang=en_US
  • Artigo de acompanhamento: https://www.hunt-benito.com/blog/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal/
  • Pesquisador creditado: MUSTAFA SANLI
  • Status: corrigido na versão mais recente do Hi Browser (de acordo com o aviso da TECNO).

Este PoC não inclui o APK proprietário com.talpa.hibrowser. Ele demonstra (a) a entrega HTTP maliciosa exata e (b) a classe de causa raiz do bug (um downloader que confia em um nome de arquivo de resposta como componente de caminho). O mesmo primitivo é o que o CVE-2026-18907 descreve.

Arquivos

ArquivoPropósito
evil_server.pyO servidor HTTP malicioso. Serve uma resposta cujo nome de arquivo carrega . Esta é a .

Início rápido

root@kitploit:~
# terminal 1 — start the delivery server
$ python3 evil_server.py
================================================================
 CVE-2026-18907 path-traversal delivery server
================================================================
 listening     : http://0.0.0.0:8000/
 traversal file: '../../pwned.txt'
 payload bytes : 43
----------------------------------------------------------------
 Point a vulnerable browser/downloader at the URL above.
 On a VULNERABLE client the file escapes the download dir.
================================================================

# terminal 2 — run the naive downloader against it
$ python3 naive_downloader.py --url http://127.0.0.1:8000/
================================================================
 CVE-2026-18907 naive downloader
================================================================
 download dir : /tmp/demo/Download
 Content-Disposition: attachment; filename="../../pwned.txt"
 parsed name  : '../../pwned.txt'
----------------------------------------------------------------
 [VULNERABLE] wrote 43 bytes -> /tmp/demo/Download/../../pwned.txt
              resolved -> /tmp/pwned.txt
              escaped download dir: True
 [FIXED]      wrote 43 bytes -> /tmp/demo/Download/pwned.txt
             ../ discarded by basename(); contained OK
================================================================

A concatenação vulnerável produziu /tmp/demo/Download/../../pwned.txt, o sistema operacional resolveu o .., e o arquivo se materializou em /tmp/pwned.txt — fora do diretório de download. O caminho corrigido aplicou os.path.basename() primeiro (o ../ é informação de caminho e é descartado, restando pwned.txt) e depois verificou se o caminho canônico permaneceu dentro do diretório de download.

Apontando um navegador para ele

Inicie o evil_server.py em um host que o dispositivo de teste possa acessar e, em seguida, navegue com um navegador vulnerável para http://<host>:8000/. Em um navegador que inicia automaticamente downloads do tipo attachment e não sanitiza o nome do arquivo, o arquivo é gravado em um caminho resolvido pela cadeia de ../. Verifique se a contenção falhou com o adb:

root@kitploit:~
$ adb shell ls -la /sdcard/Download/         # nothing — name never landed here
$ adb shell find /sdcard -name pwned.txt
/sdcard/pwned.txt                            # escaped the download directory

Ajuste a profundidade de escalada para o dispositivo com --depth (o padrão 2 limpa /sdcard/Download/ de volta para /sdcard/; aumente-o para subir mais alto) e o basename de destino com --target.

A correção (um padrão)

Para qualquer gerenciador de downloads, toda a classe CWE-23 se resume a dois hábitos aplicados em conjunto:

  1. Reduza a um basename — remova tudo até (e incluindo) a última /.
  2. Verifique a contenção do caminho canônico — depois de concatenar, canonicalize e garanta que o resultado ainda comece com o diretório pretendido.
root@kitploit:~
File base = downloadDir.getCanonicalFile();
File out  = new File(base, safeName).getCanonicalFile();
if (!out.toPath().startsWith(base.toPath())) {
    throw new SecurityException("refusing to write outside download dir: " + out);
}

Não coloque ../ em uma lista negra — o conjunto de codificações equivalentes a traversal é ilimitado. Canonicalize, depois compare. Esse algoritmo é fechado.

Uso responsável

Execute o servidor apenas em uma rede que você controle e teste apenas em um dispositivo que você possua. Uma escrita por path traversal é, por definição, uma primitiva de escrita de arquivo — não a aponte para nada que você não esteja disposto a sobrescrever.

Licença

MIT — consulte o artigo de acompanhamento para atribuição completa e fontes primárias.

Baixar ferramenta
Content-Disposition
../
entrega
naive_downloader.pyUm downloader mínimo que reproduz o padrão vulnerável join(dir, filename), juntamente com a versão corrigida (basename + contenção canônica), para que você possa observar a fuga em uma única execução.