CVE-2025-38472 — netfilter: nf_conntrack: fix crash due to removal of uninitialised entry
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack: fix crash due to removal of uninitialised entry A crash in conntrack was reported while trying to unlink the conntrack entry from the hash bucket list: [exception RIP: __nf_ct_delete_from_lists+172] [..] #7 [ff539b5a2b043aa0] nf_ct_delete at ffffffffc124d421 [nf_conntrack] #8 [ff539b5a2b043ad0] nf_ct_gc_expired at ffffffffc124d999 [nf_conntrack] #9 [ff539b5a2b043ae0] __nf_conntrack_find_get at ffffffffc124efbc [nf_conntrack] [..] The nf_conn struct is marked as allocated from slab but appears to be in a partially initialised state: ct hlist pointer is garbage; looks like the ct hash value (hence crash). ct->status is equal to IPS_CONFIRMED|IPS_DYING, which is expected ct->timeout is 30000 (=30s), which is unexpected. Everything else looks like normal udp conntrack entry. If we ignore ct->status and pretend its 0, the entry matches those that are newly allocated but not yet inserted into the hash: - ct hlist pointers are overloaded and store/cache the raw tuple hash - ct->timeout matches the relative time expected for a new udp flow rather than the absolute 'jiffies' value. If it were not for the presence of IPS_CONFIRMED, __nf_conntrack_find_get() would have skipped the entry. Theory is that we did hit following race: cpu x cpu y cpu z found entry E found entry E E is expired <preemption> nf_ct_delete() return E to rcu slab init_conntrack E is re-inited, ct->status set to 0 reply tuplehash hnnode.pprev stores hash value. cpu y found E right before it was deleted on cpu x. E is now re-inited on cpu z. cpu y was preempted before checking for expiry and/or confirm bit. ->refcnt set to 1 E now owned by skb ->timeout set to 30000 If cpu y were to resume now, it would observe E as expired but would skip E due to missing CONFIRMED bit. nf_conntrack_confirm gets called sets: ct->status |= CONFIRMED This is wrong: E is not yet added to hashtable. cpu y resumes, it observes E as expired but CONFIRMED: <resumes> nf_ct_expired() -> yes (ct->timeout is 30s) confirmed bit set. cpu y will try to delete E from the hashtable: nf_ct_delete() -> set DYING bit __nf_ct_delete_from_lists Even this scenario doesn't guarantee a crash: cpu z still holds the table bucket lock(s) so y blocks: wait for spinlock held by z CONFIRMED is set but there is no guarantee ct will be added to hash: "chaintoolong" or "clash resolution" logic both skip the insert step. reply hnnode.pprev still stores the hash value. unlocks spinlock return NF_DROP <unblocks, then crashes on hlist_nulls_del_rcu pprev> In case CPU z does insert the entry into the hashtable, cpu y will unlink E again right away but no crash occurs. Without 'cpu y' race, 'garbage' hlist is of no consequence: ct refcnt remains at 1, eventually skb will be free'd and E gets destroyed via: nf_conntrack_put -> nf_conntrack_destroy -> nf_ct_destroy. To resolve this, move the IPS_CONFIRMED assignment after the table insertion but before the unlock. Pablo points out that the confirm-bit-store could be reordered to happen before hlist add resp. the timeout fixup, so switch to set_bit and before_atomic memory barrier to prevent this. It doesn't matter if other CPUs can observe a newly inserted entry right before the CONFIRMED bit was set: Such event cannot be distinguished from above "E is the old incarnation" case: the entry will be skipped. Also change nf_ct_should_gc() to first check the confirmed bit. The gc sequence is: 1. Check if entry has expired, if not skip to next entry 2. Obtain a reference to the expired entry. 3. Call nf_ct_should_gc() to double-check step 1. nf_ct_should_gc() is thus called only for entries that already failed an expiry check. After this patch, once the confirmed bit check pas ---truncated---
Descrição oficial em inglês (tradução ainda não revisada).
Quem explora e qual a prioridade
Nota de 0 a 100 que combina exploração confirmada, uso por ransomware e grupos APT, exploits públicos, EPSS e severidade.
Como a nota foi calculada
- EPSS 0.4% (probabilidade de exploração em 30 dias)+5
- Severidade técnica (medium)+3
- Exploração automatizável (SSVC)+3
A nota ordena a fila de correção; não substitui o contexto dos seus ativos (exposição à internet, criticidade, compensações).
Triagem
Está sendo explorada, qual a probabilidade de exploração, o que afeta e qual a severidade segundo as fontes.
Avaliação SSVC da CISA CISA
Três pontos de decisão que a CISA publica para as CVEs que avalia (SSVC 2.0.3). Uma decisão de priorização, não uma nota de severidade.
Remediação
Correções e mitigações documentadas pelas fontes — com link para o aviso original.
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
- Patch documentado — git.kernel.org (NIST National Vulnerability Database)
Primeiras 24 horas
Ordenado a partir dos próprios campos do registro — exposição primeiro, porque não se corrige o que não se encontrou. Ponto de partida, gerado por regras.
- Identifique ativos expostos que executam as combinações de fabricante/produto/versão afetadas (Debian Debian Linux, Linux Linux, Linux Linux Kernel).
- Aplique a versão corrigida ou o patch documentado na seção Remediação.
- Procure nos logs disponíveis sinais de tentativa de exploração compatíveis com a classe da falha (corrupção de memória), erros e anomalias de autenticação.
Escopo afetado
Fabricante, produto e versões como as fontes os descrevem.
| Fabricante | Produto | Versões | Status | Fonte |
|---|---|---|---|---|
| Debian | Debian Linux | versão 11.0 | Vulnerável | NIST National Vulnerability Database |
| Linux | Linux | versão 5.19≥ 5.18.13 e < 5.19versão 594cea2c09f7cd440d1ee1c4547d5bc6a646b0e4≥ 1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 e < 2d72afb340657f03f7261e9243b44457a9228ac7≥ 1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 e < 938ce0e8422d3793fe30df2ed0e37f6bc0598379≥ 1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 e < fc38c249c622ff5e3011b8845fd49dbfd9289afc≥ 1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 e < 76179961c423cd698080b5e4d5583cf7f4fcdde9≥ 1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 e < a47ef874189d47f934d0809ae738886307c0ea22 | Vulnerável | CVE Program (cve.org) e CISA ADP |
| Linux | Linux Kernel |
versão 6.16-rc5versão 6.16-rc6versão 6.16-rc4versão 6.16-rc3versão 6.16-rc2versão 6.16-rc1≥ 6.13 e < 6.15.8≥ 6.7 e < 6.12.40 e mais 2≥ 6.2 e < 6.6.100≥ 5.18.13 e < 6.1.147 |
Vulnerável | NIST National Vulnerability Database |
Características do ataque
O vetor CVSS decodificado. Descreve o ataque, não a sua exposição a ele.
Todas as pontuações coletadas
As fontes pontuam de forma independente e podem discordar; cada linha diz quem pontuou e em qual versão.
| Nota | Versão | Severidade | Explor. | Impacto | Pontuado por |
|---|---|---|---|---|---|
| 9.8 | CVSS 3.1 | Crítica | 3.9 | 5.9 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 via NIST National Vulnerability Database |
| 9.8 | CVSS 3.1 | Crítica | — | — | Linux via CVE Program (cve.org) e CISA ADP |
| 5.5 | CVSS 3.1 | Média | 1.8 | 3.6 | nvd@nist.gov via NIST National Vulnerability Database |
| 5.5 | CVSS 3.1 | Média | — | — | GitHub, Inc. via GitHub Security Advisories |
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H (nota exibida no topo: nvd@nist.gov) Fraqueza MITRE
Classe de fraqueza segundo o catálogo CWE do MITRE.
Detecção
Derivado do vetor CVSS e da classe da fraqueza. Pontos de partida, não regras testadas.
- Vetor local/físico: concentre-se em telemetria de endpoint (EDR) dos hosts afetados.
- Correlacione falhas/reinícios do serviço com tráfego de entrada; crashes repetidos podem indicar tentativas.
Linha do tempo
O que aconteceu com esta CVE, do mais recente ao mais antigo.
- 2026
- Produtos afetados adicionados · linux/linux
- Avaliação SSVC atualizada
- Ficha publicada
- Correção documentada
- Produtos afetados adicionados · linux/linux kernel, debian/debian linux
- CVSS alterado · 5.5
- Status na fonte alterado · → Modified
- Registro criado nesta base
- 2025
- CVE publicada
Atividade das fontes
Leituras que se repetem foram contadas em vez de listadas.
- 2× Referências adicionadas · 15/10/2026 – 15/10/2026
- 1× Descrição oficial atualizada · 15/10/2026 – 15/10/2026
Referências
8 no registro
- git.kernel.org/stable/c/76179961c423cd698080b5e4d5583cf7f4fcdde9
- git.kernel.org/stable/c/fc38c249c622ff5e3011b8845fd49dbfd9289afc
- git.kernel.org/stable/c/938ce0e8422d3793fe30df2ed0e37f6bc0598379
- git.kernel.org/stable/c/2d72afb340657f03f7261e9243b44457a9228ac7
- git.kernel.org/stable/c/a47ef874189d47f934d0809ae738886307c0ea22
- lists.debian.org/debian-lts-announce/2025/10/msg00008.html
- nvd.nist.gov/vuln/detail/CVE-2025-38472
- github.com/advisories/GHSA-979q-6jjc-29jh
Em outras páginas do site
CVEs relacionadas (mesmos produtos)
- Crítica CVE-2026-99999 ipv4: validate checksum_start before completing checksum 1 d
- Desconhecida CVE-2026-98432 ipv4: free inet_opt and ireq_opt after an RCU grace period 1 d
- Desconhecida CVE-2026-98429 RDMA/efa: Keep EQ resources alive while IRQ is registered 2 d
- Desconhecida CVE-2026-98424 wifi: cfg80211: undo netns switch if renaming the wiphy fails 2 d
- Desconhecida CVE-2026-98425 wifi: mac80211: don't warn when an IBSS has no channel to scan 2 d
- Desconhecida CVE-2026-98426 wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path 2 d
Não consta em nenhuma fonte consultada
Listado em vez de deixado em branco: um campo vazio e um não medido parecem iguais na tela, e só um deles é motivo para procurar em outro lugar.
- Nenhum IOC confirmado (IPs, domínios, hashes ou artefatos de malware) fornecido.
- Nenhum inventário de ativos, controle compensatório ou evidência de implantação de patch da sua organização.
- Nenhuma captura de tráfego de exploração, amostra de log ou caso de incidente.
Respondido a partir deste registro
Texto montado apenas com os campos acima — sem afirmações adicionais.
O que os defensores devem saber primeiro?
CVE-2025-38472 é "netfilter: nf_conntrack: fix crash due to removal of uninitialised entry", de severidade Média. Afeta Debian Linux (Debian); as versões estão na tabela de escopo. Não está na CISA KEV, o que não exclui exploração. CVSS 5.5 descreve a severidade técnica. EPSS 0.41% estima a probabilidade de exploração em 30 dias; nenhum dos dois substitui o contexto dos seus ativos. Verifique primeiro se ativos expostos ou críticos executam as versões afetadas, aplique as correções ou mitigações do fabricante e preserve logs para análise.
Comentários
Discussão técnica moderada. Leia as regras da comunidade.
Nenhum comentário ainda.
Entre ou crie uma conta para comentar e sugerir correções.