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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-92392 — Verifica builds locais de curl/libcurl quanto à exposição à use-after-free no upload HTTP/2 da CVE-2026-92392, com inventário passivo, varredura de imagens montadas e uma sonda PoC limitada em loopback. | Kitploit
Ferramentas/GitHubGitHub/ashu7ank/cve-2026-92392
Ferramentas DefensivasScanners de VulnerabilidadesSegurança de ContêineresAnálise Dinâmica (Sandboxing)Análise de VulnerabilidadesColeta de InformaçõesVirtualização para SegurançaFuzzing
GitHubashu7ank/cve-2026-92392

CVE-2026-92392

Verifica builds locais de curl/libcurl quanto à exposição à use-after-free no upload HTTP/2 da CVE-2026-92392, com inventário passivo, varredura de imagens montadas e uma sonda PoC limitada em loopback.

4há 22 diasAinda 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 →
Ver Repositório
Compartilhar

Verificador de exposição e POC para CVE-2026-92392 em curl/libcurl

cve_2026_92392_check.py avalia artefatos locais de curl e libcurl quanto à CVE-2026-92392, um use-after-free em upload HTTP/2 no curl/libcurl.

Ele oferece suporte a inventário local passivo, avaliação de banners fornecidos, varredura de imagens montadas sem execução e uma sonda de protocolo HTTP/2 limitada em loopback. A sonda é defensiva e não armamentizada. Ela não contém payload de comando, shellcode, manipulação de endereço de memória, lógica de vazamento de informações nem payload de RCE.

A sonda ativa vincula-se apenas a 127.0.0.1, não aceita URL ou host de alvo remoto e executa apenas o binário curl local selecionado.

O que este verificador estabelece

O verificador separa quatro níveis distintos de evidência:

Nível de evidênciaO que estabeleceO que não estabelece
Classificação de buildSe um artefato curl/libcurl qualificado por versão está fora do intervalo afetado upstream, afetado upstream com estado de patch do fornecedor desconhecido, ou confirmadamente afetado usando evidência de estado de patch fornecidaSe uma aplicação realmente usa o caminho de upload HTTP/2 afetado
Contexto de exposição em tempo de execuçãoSe fatos fornecidos da aplicação indicam que uploads HTTP/2 podem alcançar um endpoint controlado pelo atacanteSe a vulnerabilidade foi acionada
Estímulo de protocoloSe o harness de loopback local entregou ambas as variantes de reset documentadas com dois uploads em uma única conexão HTTP/2Um use-after-free, causa de crash ou execução de código
Resultado de sanitizer atribuído à CVESe a sequência candidata, um heap-use-after-free do AddressSanitizer, uma identidade de artefato afetada upstream e uma pilha HTTP/2 correspondente foram todos observadosConfiabilidade ou explorabilidade prática em outro sistema

Uma execução limpa, uma execução de protocolo incompleta ou uma execução de sanitizer sem crash não provam que um build é seguro.

Resumo da vulnerabilidade

A CVE-2026-92392 afeta o tratamento de upload HTTP/2 no curl/libcurl. Durante um upload, um build afetado pode processar um RST_STREAM HTTP/2 contendo REFUSED_STREAM ou HTTP_1_1_REQUIRED. Dados de upload em buffer podem então ser interpretados como uma nova requisição depois que o estado HTTP/2 da transferência original foi desanexado. Um callback HTTP/2 posterior pode desreferenciar um ponteiro Curl_easy obsoleto.

A comparação REA usada para revisar este verificador confirmou a diferença relevante na ordenação de limpeza:

  1. O artefato afetado chama Curl_conn_ev_data_done, processa handles pendentes e só então chama Curl_req_done.
  2. Curl_req_done chega a req_flush, enquanto o caminho de data-done do HTTP/2 já limpou o contexto do stream.
  3. Os dados de upload restantes em buffer podem criar um stream HTTP/2 posterior associado ao mesmo ponteiro de easy-handle bruto.
  4. A implementação corrigida executa Curl_req_done antes de Curl_conn_ev_data_done, eliminando essa ordenação obsoleta.

Esta é uma evidência de implementação que sustenta o modelo de prova do verificador. O estado de patch do fornecedor ainda requer verificação independente.

Versões upstream afetadas

O aviso upstream identifica a implementação vulnerável como introduzida no curl 8.12.0. O verificador classifica as versões upstream da seguinte forma:

Condição da versãoClassificação
Anterior a 8.12.0NOT AFFECTED
8.12.0 até 8.22.0, excluindo backports corrigidosAfetada upstream
Ramo 8.14 na versão 8.14.3 ou posteriorBackport corrigido
Ramo 8.16 na versão 8.16.2 ou posteriorBackport corrigido
Ramo 8.20 na versão 8.20.2 ou posteriorBackport corrigido
8.23.0 ou posteriorNOT AFFECTED
Desenvolvimento, snapshot, nightly ou versão ambíguaINDETERMINATE

Um fornecedor pode aplicar o backport da correção sem alterar a string de versão upstream do curl. Portanto, uma versão upstream afetada é evidência de inventário, não prova conclusiva de que um build do fornecedor não foi corrigido.

Use --patch-state apenas quando o estado semântico da correção downstream tiver sido verificado por meio de avisos do fornecedor, changelogs de pacotes, comparação de código-fonte ou outro método confiável em nível de artefato.

valor de --patch-stateSignificado
unknownPadrão. Uma versão upstream afetada produz UPSTREAM-AFFECTED VERSION.
absentO operador verificou de forma independente que a correção downstream está ausente. Uma build afetada com suporte a HTTP/2 produz AFFECTED BUILD.
presentO operador verificou de forma independente que a correção semântica downstream está presente. Esta é uma afirmação do operador, não uma prova automática de equivalência binária com a correção upstream do curl.

Requisitos

  • Python 3.10 ou mais recente.
  • Nenhuma dependência Python além da biblioteca padrão.
  • Um executável curl local para --poc.
  • Suporte a HTTP/2 confirmado para sondagem ativa significativa.
  • Uma build do curl instrumentada com AddressSanitizer para --poc-proof asan.
  • O comando openssl apenas quando --tls é usado.
  • Um executável curl nativo ELF ou Mach-O qualificado por produto para sondagem ativa.

O modo PoC ativo recusa scripts, wrappers, executáveis nativos não identificados e binários PE/Windows. A avaliação passiva permanece disponível para banners e sistemas de arquivos montados.

Início rápido

Inspecione o binário curl encontrado no PATH:

python3 cve_2026_92392_check.py

Emitir JSON:

python3 cve_2026_92392_check.py --json

Execute testes internos:

python3 cve_2026_92392_check.py --self-test
python3 -O cve_2026_92392_check.py --self-test

Inspecione um executável curl selecionado e a biblioteca compartilhada libcurl:

python3 cve_2026_92392_check.py \
  --curl-binary /opt/curl/bin/curl \
  --libcurl-path /opt/curl/lib/libcurl.so \
  --json

Avalie um banner curl confiável sem executar um binário:

python3 cve_2026_92392_check.py \
  --version-string 'curl 8.12.0 libcurl/8.12.0 nghttp2/1.61.0' \
  --json

Uma versão simples como 8.12.0 não é aceita como evidência verificada de identidade do curl/libcurl.

Fluxo de trabalho de inventário remoto

O verificador deliberadamente não contacta hosts remotos. Obtenha o banner através de um canal administrativo autorizado, guarde-o localmente e depois avalie-o localmente:

ssh [email protected] 'curl --version' > host-curl-version.txt

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use unknown \
  --untrusted-upload unknown \
  --https-certificate unknown \
  --json

Se a revisão da aplicação ou um rastreamento confiável estabelecer que os uploads usam HTTP/2, conseguem alcançar um endpoint controlado pelo atacante e aceitam seu certificado HTTPS, forneça esses fatos explicitamente:

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use yes \
  --untrusted-upload yes \
  --https-certificate yes \
  --patch-state unknown \
  --json

Para h2c em texto claro, use --https-certificate not-applicable.

--http2-use yes identifica o uso de HTTP/2 em tempo de execução. Isso não prova que o artefato foi compilado com suporte a HTTP/2. Da mesma forma, --untrusted-upload yes descreve o fluxo de dados da aplicação, enquanto --https-certificate yes registra a condição de confiança HTTPS separada.

Avaliação de imagem montada

Use --root para escanear uma imagem de contêiner montada, imagem de VM ou sistema de arquivos extraído sem executar os arquivos descobertos:

python3 cve_2026_92392_check.py \
  --root /mnt/rootfs \
  --json

A varredura raiz:

Baixar ferramenta