
Verifique um host Ubuntu para a CVE-2026-98432 e, após confirmar, aplique a mitigação provisória Red Hat RHSB-2026-016. Ubuntu 20.04 a 26.10.
Um script para servidores Ubuntu que estima o estado de correção do kernel em execução para a CVE-2026-98432 a partir de metadados de pacotes e dados do fornecedor e, após sua confirmação, aplica a mitigação provisória do boletim da Red Hat RHSB-2026-016. Ele também pode contar pacotes correspondentes sem descartá-los, para que você possa medir antes de aplicar a regra.
Esta não é uma correção e não garante proteção. A regra de filtragem de entrada é baseada no boletim da Red Hat; a cobertura de encaminhamento e os recursos operacionais são adições deste projeto. Esta não é uma ferramenta oficial da Red Hat ou da Canonical. Ela descarta pacotes TCP IPv4 correspondentes com opções IP nos hooks configurados para reduzir a exposição. A Red Hat afirma que isso "não pode impedir totalmente" o problema, e apenas um kernel corrigido pelo fornecedor o resolve. Instale esse kernel e reinicie assim que ele for lançado, depois remova isto.
A CVE-2026-98432 é um use-after-free no handshake TCP IPv4 do kernel Linux. tcp_v4_syn_recv_sock() entrega as opções IP salvas de um SYN ao novo socket sem copiá-las, de modo que outra CPU que processa um SYN retransmitido pode ler essa memória depois que ela foi liberada. Uma corrida semelhante existe na migração de request socket (net.ipv4.tcp_migrate_req=1, ou um programa BPF). A correção upstream adia a liberação até que um período de carência RCU tenha passado.
| Afetado | Linux 4.4 e posteriores, até a correção |
| Pontuação | CVSS 9.8 pelo CNA do kernel, Red Hat (preliminar) e registro do Ubuntu; 8.1 pela SUSE, Oracle e Amazon. A prioridade do Ubuntu é Alta |
| Correção upstream | e3f33b0a1d89 em 7.3-rc7; estáveis 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 |
| Requer | Um listener TCP acessível via IPv4, um SYN que carregue opções IP e vencer uma corrida |
| IPv6 | Não afetado pelo problema principal |
O que se sabe sobre a exploração, em 30 de outubro de 2026. A Anthropic relata um exploit remoto de root em seus próprios testes contra um servidor com um listener Multipath TCP (MPTCP), e não publicou o código. A equipe de segurança do Go observa que o Go 1.24 e posteriores abrem listeners MPTCP por padrão, e que o bug não é específico do MPTCP, portanto servidores sem esse listener também podem ser vulneráveis. A CVE não está no catálogo CISA KEV (edição de 2026-10-30).
Estado no Ubuntu, a partir do rastreador do Ubuntu em 30 de outubro de 2026. Nada está marcado como lançado ainda.
| Versão | Pacote linux |
|---|---|
| 26.10 | Pendente (7.3.0-10.10) |
| 26.04 LTS | Pendente (7.0.0-43.43) |
| 24.04 LTS | Pendente (6.8.0-149.149) |
| 22.04 LTS | Pendente (5.15.0-203.213; HWE 6.8.0-149.149~22.04.1) |
| 20.04 LTS | Necessário, nenhuma versão listada |
"Pendente" significa que uma correção está a caminho e não foi lançada. Verifique o rastreador para o estado atual.
Leia um script antes de executá-lo como root.
curl -fsSLO https://raw.githubusercontent.com/soroushneshati/cve-2026-98432-ubuntu-mitigation/main/cve-2026-98432-mitigation.sh
less cve-2026-98432-mitigation.sh
sudo bash cve-2026-98432-mitigation.sh check
Isso apenas lê. Esta versão está pronta para validação em laboratório, ainda não para implantação em produção. Em um host que não seja de produção, meça primeiro, depois aplique:
sudo bash cve-2026-98432-mitigation.sh --monitor-only
sudo bash cve-2026-98432-mitigation.sh
Cada execução mostra a avaliação e um plano, pergunta, aplica, verifica a regra carregada e executa um autoteste. Adicione --dry-run para ver o plano e as regras sem alterar nada. docs/EXAMPLES.md tem a saída real para cada estado.
A ferramenta responde a estas perguntas de forma independente, e uma nunca substitui a outra.
| Pergunta | Campo em check e JSON | Valores |
|---|---|---|
| O kernel em execução tem a correção? | Status de patch | PATCHED, VULNERABLE, UNKNOWN, NOT_AFFECTED |
| A regra está sendo aplicada no kernel agora? | Aplicação da mitigação | ACTIVE_VERIFIED, PARTIAL, MONITORING_ONLY, MISCONFIGURED, MISSING, UNKNOWN |
| Ela sobreviverá a uma reinicialização e a um recarregamento? | Persistência | OK, PARTIAL, INTERRUPTED, NOT_INSTALLED |
| As sondagens se comportaram como esperado? | Verificação em tempo de execução | PASS, FAIL, INCONCLUSIVE, SKIPPED, NOT_RUN, STALE |
| O relatório de status está funcionando? | Relatório | OK, STALE, TIMER_NOT_ACTIVE, NO_REPORT_YET, NOT_INSTALLED |
A última linha combina os resultados e define o código de saída da execução padrão, de check e de status:
| Resultado | Saída | Significado |
|---|---|---|
PATCHED, NOT_AFFECTED | 0 | Os metadados do pacote ou os dados do fornecedor indicam uma correção ou ausência de impacto. Confirme o kernel em execução e a variante exata antes de remover a proteção |
MITIGATED | 1 | Não se sabe que foi corrigido, e a regra está verificada no kernel. Menor exposição, não uma correção |
VULNERABLE | 2 | Os dados do fornecedor indicam que o kernel em execução não foi corrigido, e a regra não está sendo aplicada |
UNKNOWN | 3 | Evidência insuficiente ou conflitante, e a regra não está sendo aplicada. Trate como vulnerável |
| 4 | A própria ferramenta falhou, ou recusou-se a alterar algo |
Com automação, conte 0 e 1 como sucesso. MITIGATED exige ACTIVE_VERIFIED: uma tabela vazia, uma regra alterada, uma prioridade errada, uma regra apenas de contagem ou um host que você não consegue inspecionar nunca o fornecem. O modo somente monitoramento não é um controle de segurança, portanto ele relata o resultado do próprio kernel.
Apenas o kernel em execução conta, e a ausência de menção a uma CVE nunca é evidência. A ordem é:
linux-modules-<release>) menciona a CVE ou o assunto do commit upstream: PATCHED. Uma reversão dessa correção resulta em UNKNOWN.dpkg-query, de modo que -aws, -azure, HWE e os demais sejam comparados com suas próprias versões. O script incorpora um snapshot datado do rastreador do Ubuntu (116 linhas em 2026-10-30). Uma versão released que é atendida resulta em PATCHED; uma que não é atendida, ou uma versão pending acima da em execução, resulta em VULNERABLE.UNKNOWN, com um código de motivo.