cveboard Feed RSS

CVE-2026-31669

CVE.org · Publicado

Histórico de CVEsJSONInstruções para IA

Status do registro
Publicado
Ano do identificador (não é o ano de publicação)
2026
Publicação na fonte
Atualização na fonte
Importado pelo cveboard
Snapshot da fonte
cve_2026-10-24_midnight_baseline ·

Texto simples

Texto da CNA em inglês

mptcp: fix slab-use-after-free in __inet_lookup_established

In the Linux kernel, the following vulnerability has been resolved: mptcp: fix slab-use-after-free in __inet_lookup_established The ehash table lookups are lockless and rely on SLAB_TYPESAFE_BY_RCU to guarantee socket memory stability during RCU read-side critical sections. Both tcp_prot and tcpv6_prot have their slab caches created with this flag via proto_register(). However, MPTCP's mptcp_subflow_init() copies tcpv6_prot into tcpv6_prot_override during inet_init() (fs_initcall, level 5), before inet6_init() (module_init/device_initcall, level 6) has called proto_register(&tcpv6_prot). At that point, tcpv6_prot.slab is still NULL, so tcpv6_prot_override.slab remains NULL permanently. This causes MPTCP v6 subflow child sockets to be allocated via kmalloc (falling into kmalloc-4k) instead of the TCPv6 slab cache. The kmalloc-4k cache lacks SLAB_TYPESAFE_BY_RCU, so when these sockets are freed without SOCK_RCU_FREE (which is cleared for child sockets by design), the memory can be immediately reused. Concurrent ehash lookups under rcu_read_lock can then access freed memory, triggering a slab-use-after-free in __inet_lookup_established. Fix this by splitting the IPv6-specific initialization out of mptcp_subflow_init() into a new mptcp_subflow_v6_init(), called from mptcp_proto_v6_init() before protocol registration. This ensures tcpv6_prot_override.slab correctly inherits the SLAB_TYPESAFE_BY_RCU slab cache.

Fatos de produtos e versões por escopo

Dados de correção desconhecidos; nenhuma versão corrigida é deduzida aqui. Dados ausentes não comprovam ausência de correção.

Exploração desconhecida; este catálogo não avalia exploração.

Linux

Fornecedor
Linux
Produto
Linux
Plataformas
Desconhecido
Status padrão
unaffected
Linux · Fatos de produtos e versões por escopo
Versão (version)Status (status)Esquema de versões (versionType)Fim exclusivo (lessThan)Fim inclusivo (lessThanOrEqual)Mudanças de status (at → status)
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgitf6e1f25fa5e733570f6d6fe37a4dfed2a0deba47IndisponívelNenhuma listada
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgitfb1f54b7d16f393b8b65d328410f78b4beea8fccIndisponívelNenhuma listada
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgit3fd6547f5b8ac99687be6d937a0321efda760597IndisponívelNenhuma listada
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgiteb9c6aeb512f877cf397deb1e4526f646c70e4a7IndisponívelNenhuma listada
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgit15fa9ead4d5e6b6b9c794e84144146c917f2cb62IndisponívelNenhuma listada
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgitb313e9037d98c13938740e5ebda7852929366dffIndisponívelNenhuma listada
b19bc2945b40b9fd38e835700907ffe8534ef0deaffectedgit9b55b253907e7431210483519c5ad711a37dafa1IndisponívelNenhuma listada

Linux

Fornecedor
Linux
Produto
Linux
Plataformas
Desconhecido
Status padrão
affected
Linux · Fatos de produtos e versões por escopo
Versão (version)Status (status)Esquema de versões (versionType)Fim exclusivo (lessThan)Fim inclusivo (lessThanOrEqual)Mudanças de status (at → status)
5.12affectedIndisponívelIndisponívelIndisponívelNenhuma listada
0unaffectedsemver5.12IndisponívelNenhuma listada
5.15.203unaffectedsemverIndisponível5.15.*Nenhuma listada
6.1.169unaffectedsemverIndisponível6.1.*Nenhuma listada
6.6.135unaffectedsemverIndisponível6.6.*Nenhuma listada
6.12.82unaffectedsemverIndisponível6.12.*Nenhuma listada
6.18.23unaffectedsemverIndisponível6.18.*Nenhuma listada
6.19.13unaffectedsemverIndisponível6.19.*Nenhuma listada
7.0unaffectedoriginal_commit_for_fixIndisponível*Nenhuma listada