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-98432-audit — Script de auditoria bash somente leitura que faz a triagem da CVE-2026-98432, uma vulnerabilidade use-after-free no TCP IPv4 do kernel Linux, verificando changelogs do kernel, matrizes de correção das distribuições e exposição de listeners TCP. | Kitploit
Ferramentas/GitHubGitHub/quaerendir/cve-2026-98432-audit
Ferramentas DefensivasScanners de VulnerabilidadesAnálise de VulnerabilidadesScripting e AutomaçãoAuditoria de ConfiguraçãoColeta de InformaçõesResposta a Incidentes
GitHub

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 →
quaerendir/cve-2026-98432-audit

cve-2026-98432-audit

Script de auditoria bash somente leitura que faz a triagem da CVE-2026-98432, uma vulnerabilidade use-after-free no TCP IPv4 do kernel Linux, verificando changelogs do kernel, matrizes de correção das distribuições e exposição de listeners TCP.

Ver Repositório
113há 6 diasAinda não revisado
Compartilhar

cve-2026-98432-audit

CVE Class CVSS Disclosed Shell License Version CI

Script de auditoria somente leitura para a CVE-2026-98432, um use-after-free no handshake TCP IPv4 do kernel Linux. Um SYN-ACK pode ser construído a partir de opções IP que outra CPU acabou de liberar. O gatilho é tráfego de rede contra um socket de escuta comum, portanto, ao contrário dos bugs de page-cache e checksum nas auditorias irmãs, ele não exige acesso local.

TL;DR

Quando uma conexão é concluída, tcp_v4_syn_recv_sock() entrega as opções IP do request socket (ireq->ireq_opt) ao novo socket filho sem copiá-las. Um SYN retransmitido para o mesmo request socket, tratado em outra CPU, ainda pode estar construindo um SYN-ACK a partir dessas opções. Desde 079096f103fa (4.4) os request sockets executam sem o lock do listener, as opções do filho são liberadas com um kfree() simples, e ip_options_build() lê memória liberada (CWE-416).

Existe uma segunda corrida na migração de request socket, que só está ativa com net.ipv4.tcp_migrate_req=1 ou um programa BPF SK_REUSEPORT_SELECT_OR_MIGRATE. A correção troca ambas as liberações por kfree_rcu().

CVECVE-2026-98432
ComponenteKernel Linux net/ipv4 (tcp_v4_syn_recv_sock, inet_sock_destruct, tcp_v4_reqsk_destructor)
ClasseUse-after-free, alcançável remotamente por um socket TCP em escuta
Introduzido em079096f103fa "tcp/dccp: install syn_recv requests into ehash table" (4.4); parte de migração c905dee62232
Correção upstreame3f33b0a1d89 "ipv4: free inet_opt and ireq_opt after an RCU grace period" (Eric Dumazet), em 7.3-rc7
Correções em stable5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10
RelatorXinyang Ge
SeveridadeCNA: 9.8 (AC:L). Red Hat: 8.1 (AC:H, por causa da corrida), sem mitigação disponível. Ubuntu: High
Debianbookworm corrigido em 6.1.190-1, trixie em 6.12.113-1, forky 7.2.12-1
Ubuntucorreção em andamento para todas as versões, nenhuma lançada ainda
Red Hatnenhuma tabela de produtos afetados ou erratum publicado

As versões stable foram verificadas contra os arquivos ChangeLog-* do kernel.org em 2026-10-29. Em cada branch, a versão listada é a primeira a conter a correção e a versão anterior a ela não a possui. O mainline foi verificado comparando tags: 7.3-rc6 não possui o commit e 7.3-rc7 o possui. As séries sem linha de correção (4.x, 5.4, 6.2–6.5, 6.7–6.11, 6.13–6.17, 6.19, 7.0, 7.1) estão em fim de vida e são reportadas como vulneráveis. Os estados das distribuições são da mesma data.

O bug exige um socket TCP em escuta e um SYN que carregue opções IP, além de uma corrida perdida entre duas CPUs. O script não consegue julgar o quão alcançáveis sua rede torna essas opções, então ele reporta o que consegue ver (listeners) e deixa o resto com você.

O que este script faz

Ele apenas faz triagem e não altera nada. Nunca carrega um módulo, nunca abre um socket, nunca toca em sysctl ou regras de firewall, e nunca executa um PoC, portanto é seguro executá-lo em produção.

  • Inventaria o kernel em execução, a distro e o pacote do kernel em execução.
  • Detecção de correção que não fica desatualizada: procura no changelog do pacote do kernel em execução (changelog.Debian.gz ou rpm -q --changelog) o ID do CVE ou o assunto do commit upstream. Uma correção encontrada aí vence sempre.
  • Usa uma matriz de correções por distro (Debian, Ubuntu, família RHEL, Proxmox, Oracle UEK) e os limites upstream verificados para kernels que seguem o upstream (família Arch, Fedora, WSL2, vanilla).
  • Enumera os listeners TCP deste network namespace a partir de /proc/net/tcp e /proc/net/tcp6:
    • external: um listener IPv4 em qualquer endereço não-loopback, ou um listener wildcard IPv6, que aceita SYNs IPv4 a menos que net.ipv6.bindv6only=1;
    • loopback only: acessível por todos os utilizadores locais, que podem definir opções IP na sua própria ligação;
    • a mesma porta em vários endereços é contada uma só vez.
  • Lê net.ipv4.tcp_migrate_req e regista os runtimes de contentores, cujas portas publicadas e network namespaces privados não consegue ver. Contam como exposição.
  • Procura no journal do kernel linhas de oops que nomeiem as funções na cadeia de chamadas do bug. Uma ocorrência é uma pista a ler, não uma prova, e um exploit limpo não deixa nada.
  • Calcula uma pontuação de risco e imprime um veredicto, além de JSON com --json.

Atualidade da matriz

As linhas das distros são um snapshot (2026-10-29). Os fornecedores lançarão correções depois disso, pelo que uma cópia antiga pode reportar "fix in progress" para um kernel que já foi corrigido há muito tempo. O relatório imprime a idade do snapshot e avisa uma vez quando ultrapassa 14 dias. O aviso nunca altera o veredicto, e a verificação do changelog e os limites upstream não envelhecem. Com --quiet, uma segunda linha NOTE: aparece apenas quando está desatualizado, pelo que um parser da linha 1 não é afetado. O JSON contém matrix_date, matrix_age_days e matrix_stale.

Quando avisar, obtenha a versão mais recente deste script.

Veredictos

VeredictoSignificadoSaída
PATCHEDCorreção encontrada no changelog ou nas tabelas upstream/vendor0
NOT_APPLICABLEO kernel é anterior a 4.40
MITIGATEDNão corrigido, mas nenhum listener TCP está acessível por IPv4 neste momento. Ainda assim, corrija: iniciar qualquer serviço reabre-o1
VULNERABLENão corrigido e pelo menos um listener (ou um /proc/net/tcp ilegível, ou um runtime de contentores)2
UNKNOWNNão é possível determinar, por exemplo sem changelog e sem linha na matriz3
ERROROpção inválida ou ferramenta em falta4

MITIGATED é raro de propósito: quase todos os servidores escutam em algo. Um utilizador local também pode executar um listener num user+network namespace privado; essa via é anotada no relatório mas não contada, porque a sua explorabilidade não está verificada.

Dois casos em que uma simples comparação de versões estaria errada são tratados:

  • Proxmox VE reporta ID=debian mas executa a sua própria série proxmox-kernel-*. Os limites mínimos do Debian não se aplicam, pelo que só é limpo através de uma ocorrência no changelog.
  • WSL2 executa o kernel da Microsoft sob um userland de distro (...-microsoft-standard-WSL2). A regra da distro não se aplica; a tabela upstream aplica-se. Atualize-o a partir do Windows com wsl --update.

Utilização

sudo ./cve-2026-98432-audit.sh            # text report
./cve-2026-98432-audit.sh --json          # JSON on stdout
./cve-2026-98432-audit.sh --quiet         # one line, exit code carries the verdict
./cve-2026-98432-audit.sh --since 2026-09-01 --no-hunt

Ele é executado sem root, mas então a busca por journal e algumas consultas de pacotes podem ficar vazias. Veja examples/ para um relatório real.

O que fazer a respeito

Atualize o kernel e reinicie. Não há nenhuma opção em tempo de execução que corrija isso, e a Red Hat não lista nenhuma mitigação. Até então, você pode reduzir a exposição:

Baixar ferramenta