CVE-2026-31669

CRITICALPre-NVD 9.89.8
EchelonGraph scoreMEDIUM confidence

Score 9.8 from GitHub Security Advisory (severity: CRITICAL) published 2026-04-24. NVD baseline CVSS 9.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
9.8
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 9.8Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

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.

CVSS v3
9.8
EG Score
9.8(medium)
EPSS
36.9%
KEV
Not listed

Published

April 24, 2026

Last Modified

July 14, 2026

Advisory Details (7)

Auto-updated May 10, 2026
No patch confirmed yet.
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/fb1f54b7d16f393b8b65d328410f78b4beea8fcc
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/f6e1f25fa5e733570f6d6fe37a4dfed2a0deba47
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/eb9c6aeb512f877cf397deb1e4526f646c70e4a7
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/b313e9037d98c13938740e5ebda7852929366dff
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/9b55b253907e7431210483519c5ad711a37dafa1
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/3fd6547f5b8ac99687be6d937a0321efda760597
generic

mptcp: fix slab-use-after-free in __inet_lookup_established - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/15fa9ead4d5e6b6b9c794e84144146c917f2cb62

Frequently asked(5)

What is CVE-2026-31669?
CVE-2026-31669 is a critical vulnerability published on April 24, 2026. In the Linux kernel, the following vulnerability has been resolved: mptcp: fix slab-use-after-free in inetlookupestablished The ehash table lookups are lockless and rely on SLABTYPESAFEBY_RCU to guarantee socket memory stability during RCU read-side critical sections. Both tcp_prot and tcpv6_prot…
When was CVE-2026-31669 disclosed?
CVE-2026-31669 was first published in the National Vulnerability Database on April 24, 2026, with the most recent update on July 14, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-31669 actively exploited?
CVE-2026-31669 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 36.9% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-31669?
CVE-2026-31669 has a CVSS v3 base score of 9.8 (NVD).
How do I remediate CVE-2026-31669?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-31669, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-31669

Explore →

Is Your Infrastructure Affected by CVE-2026-31669?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.