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 — Conjunto de regras nftables e unidade systemd que descartam pacotes TCP IPv4 que transportam opções IP para mitigar a use-after-free do kernel Linux CVE-2026-98432 até que um kernel corrigido seja disponibilizado. | Kitploit
Ferramentas/GitHubGitHub/illuscapital/cve-2026-98432
Ferramentas DefensivasAnálise de VulnerabilidadesAuditoria de ConfiguraçãoSegurança de RedeConfiguração IncorretaResposta a Incidentes
GitHubilluscapital/cve-2026-98432

CVE-2026-98432

Conjunto de regras nftables e unidade systemd que descartam pacotes TCP IPv4 que transportam opções IP para mitigar a use-after-free do kernel Linux CVE-2026-98432 até que um kernel corrigido seja disponibilizado.

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
3há 5 diasAinda não revisado
Compartilhar

Mitigação da CVE-2026-98432: descartar pacotes TCP IPv4 que transportam opções IP

Uma mitigação paliativa de firewall para a CVE-2026-98432 no Ubuntu 24.04 (noble), para hosts que expõem um listener TCP público (por exemplo, um nó Geth na porta 30303) enquanto um kernel corrigido ainda não está disponível.

Contexto

A CVE-2026-98432 é um use-after-free no código de handshake TCP IPv4 do kernel Linux. Quando um SYN recebido transporta opções IP IPv4, essas opções são entregues ao novo socket filho sem serem copiadas; um SYN retransmitido processado em simultâneo noutra CPU pode então lê-las depois de terem sido libertadas. Existe um segundo vetor de acionamento através da migração de request-socket (net.ipv4.tcp_migrate_req=1 ou um programa BPF_SK_REUSEPORT_SELECT_OR_MIGRATE).

A Ubuntu classifica-a como prioridade Alta (CVSS 3: 9.8). No momento da redação, a correção do kernel linux para noble ainda está em curso.

Os listeners MPTCP não são um caso à parte. Os binários Go 1.24+ (incluindo o Geth recente) abrem listeners como MPTCP por predefinição, pelo que o ss os mostra como mptcp. Os subflows MPTCP passam pelo mesmo caminho de SYN TCP IPv4, pelo que estão exatamente tão expostos como o TCP simples. Desativar o MPTCP (GODEBUG=multipathtcp=0) não mitiga isto.

O que isto faz

Uma única regra nftables, na sua própria tabela, descarta qualquer pacote TCP IPv4 cujo comprimento do cabeçalho não seja 5 (ou seja, qualquer coisa que transporte opções IP) antes de a stack TCP do kernel o ver:

ip protocol tcp ip hdrlength != 5 counter drop
  • O tráfego TCP legítimo da internet essencialmente nunca usa opções IP, portanto as conexões normais (incluindo o peering do Geth) não são afetadas.
  • A regra é limitada ao TCP de propósito. Uma versão anterior e mais ampla (ip hdrlength != 5) também descartava consultas de adesão IGMP, que carregam a opção Router Alert, e pode quebrar silenciosamente o multicast em LAN (mDNS/Avahi, casting).
  • Ela reside numa tabela separada (inet cvefix), pelo que coexiste com o ufw e não é afetada pelos recarregamentos do ufw.

Ficheiros

FicheiroInstalar emFinalidade
nftables-cve-2026-98432.nft/etc/nftables-cve-2026-98432.nftO conjunto de regras (idempotente; seguro para reexecutar)
cve-2026-98432.service/etc/systemd/system/cve-2026-98432.serviceUnidade oneshot que carrega o conjunto de regras no arranque

Não coloque esta regra em /etc/nftables.conf. Esse ficheiro começa com flush ruleset, o que apagaria as regras do ufw se o nftables.service for executado.

Instalação

git clone <this-repo> && cd <this-repo>

sudo install -m 0644 nftables-cve-2026-98432.nft /etc/nftables-cve-2026-98432.nft
sudo install -m 0644 cve-2026-98432.service /etc/systemd/system/cve-2026-98432.service

sudo systemctl daemon-reload
sudo systemctl enable --now cve-2026-98432.service

sudo nft list table inet cvefix

Também confirme que o gatilho de migração está desativado (padrão):

sysctl net.ipv4.tcp_migrate_req    # expect: 0

Teste

Instale o nping. No Ubuntu, ele vem no pacote nmap; não há um pacote nping separado:

sudo apt install nmap

1. Teste de controle

Primeiro, recarregue o conjunto de regras para redefinir o contador para 0, depois envie um SYN normal (sem opções de IP) pelo loopback:

sudo nft -f /etc/nftables-cve-2026-98432.nft      # reload; resets the counter to 0
sudo nping --tcp -p 30303 --flags syn -c 3 127.0.0.1
sudo nft list table inet cvefix

Esperado: respostas SA (SYN-ACK), mostrando que o listener ainda está acessível, e o contador permanece em packets 0 bytes 0. Se você não receber respostas, o nping pode estar falhando ao capturar no loopback; nesse caso, execute este teste e o próximo contra o IP da LAN do host em vez de 127.0.0.1.

2. Sondagem de opções no loopback

Envie o mesmo SYN, desta vez carregando uma opção IP (Record Route). O tráfego de loopback passa pelo hook de prerouting, então isto exercita a regra sem nada no meio:

sudo nping --tcp -p 30303 --flags syn --ip-options R -c 3 127.0.0.1
sudo nft list table inet cvefix

Esperado: o nping não recebe respostas (Lost: 3 (100.00%)), e o contador exibe exatamente:

ip protocol tcp ip hdrlength != 5 counter packets 3 bytes 240 drop

(3 sondagens × 80 bytes.)

3. Teste em máquina remota

Os testes remotos só exercitam a regra se a sondagem realmente chegar ao host. Em outra máquina na mesma LAN, direcione para o endereço LAN do host:

sudo nping --tcp -p 30303 --flags syn --ip-options R -c 3 <host-lan-ip>

Em seguida, verifique o contador no host protegido:

sudo nft list table inet cvefix

Esperado: nenhuma resposta, e o contador aumenta em 3 (para packets 6 bytes 480 se você executou o passo 2 primeiro).

Sondar o IP público a partir do exterior geralmente é inconclusivo. Muitos roteadores e dispositivos de ISP rejeitam eles próprios os pacotes com opções de IP. Um sinal típico é uma resposta RA (reset) com um TTL elevado, como ttl=250, o que aponta para um dispositivo com TTL inicial de 255 em vez de um host Linux (TTL inicial 64). A sonda nunca chega ao host, portanto o contador não se altera. O passo 4 mostra como distinguir.

4. Verificações com tcpdump

Execute estas no host protegido.

Confirme que as sondas remotas chegam. Inicie isto e, em seguida, repita a sonda do passo 3 a partir da outra máquina:

sudo tcpdump -ni any 'tcp port 30303 and (ip[0] & 0x0f) > 5'
tcpdump no hostcontador nftresposta npingSignificado
mostra pacotesaumentanenhumaMitigação funcionando
mostra pacotesinalteradoSARegra não ativa; verifique nft list table inet cvefix
nadainalteradonenhuma ou RASonda interrompida a montante; teste a partir da LAN ou do loopback

Confirme que nada mais está sendo capturado. Deixe o contador em paz por vários minutos; ele deve permanecer na sua contagem de teste. Para ver o tráfego não-TCP que carrega opções chegando (que esta regra intencionalmente deixa passar):

sudo tcpdump -ni any '(ip[0] & 0x0f) > 5 and not tcp'

Consultas IGMP do router da LAN (por exemplo, igmp query v3 para 224.0.0.1) são normais e não devem incrementar o contador.

Após uma reinicialização

systemctl is-enabled cve-2026-98432.service    # expect: enabled
sudo nft list table inet cvefix                # table present
sysctl net.ipv4.tcp_migrate_req                # expect: 0

Obtendo a correção real

Esta é uma solução paliativa. Verifique periodicamente o kernel corrigido:

uname -r
sudo pro fix CVE-2026-98432

Quando uma correção estiver disponível:

sudo apt update && sudo apt full-upgrade
sudo reboot

O Livepatch (por meio de uma assinatura pessoal gratuita do Ubuntu Pro; pro status, canonical-livepatch status) pode evitar a reinicialização, mas não há garantia de que um livepatch será disponibilizado para esta CVE.

Remoção

Depois de executar um kernel corrigido (mantê-lo também é inofensivo):

sudo systemctl disable --now cve-2026-98432.service
sudo nft delete table inet cvefix
sudo rm /etc/systemd/system/cve-2026-98432.service /etc/nftables-cve-2026-98432.nft
sudo systemctl daemon-reload

Opcional: fechar temporariamente a porta

Para uma margem extra até a aplicação do patch, a porta de entrada 30303 pode ser fechada completamente (o Geth continua sincronizando por meio de peers de saída, com menos peers):

sudo ufw deny 30303/tcp
# later:
sudo ufw delete deny 30303/tcp
Baixar ferramenta