Skip to main content
No exploitation reportedFix available

CVE-2026-31669

No exploitation reported by the sources we read.

  • Published2026-04-24
  • Fixed in6.19.13 · 6.18.23 · 6.12.82 · 6.6.135 · 6.1.169 · 5.15.203
  • WeaknessCWE-416

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

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.

Timeline

dates in UTC
  1. 2026-04-2415:16CVE publishedNVD

Observed activity

isMalicious corpus · updated 2026-10-23 15:37 UTC
Indicators tagged with this CVE, per day0 indicators over 7 days
Block these indicators
  • Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2026-31669?format=txt
  • CSV export: https://api.ismalicious.com/edl/cve/CVE-2026-31669?format=csv
  • TAXII collection of exploited CVEs
  • The EDL and CSV take an API key on the Pro plan.

Versions per branch

NVD
Linux linux kernel
BranchAffectedFixed in
6.19≥ 6.19, < 6.19.136.19.13
6.x≥ 6.13, < 6.18.236.18.23
6.x≥ 6.7, < 6.12.826.12.82
6.x≥ 6.2, < 6.6.1356.6.135
6.1≥ 5.16, < 6.1.1696.1.169
5.x≥ 5.12.1, < 5.15.2035.15.203
5.12= 5.12no fix published
7.0= 7.0no fix published

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • kernelAlmaLinux:10all versions · fixed in 6.12.0-211.26.1.el10_2and 74 other packages
  • kernelAlmaLinux:9all versions · fixed in 5.14.0-687.17.1.el9_8and 73 other packages
  • kernelAlmaLinux:8all versions · fixed in 4.18.0-553.134.1.el8_10and 24 other packages
  • kernel-rtAlmaLinux:8all versions · fixed in 4.18.0-553.134.1.rt7.475.el8_10and 9 other packages

Vendor advisories

  • CVE-2026-31669 Red Hat Product Security1,980 products fixed · 22 known affected

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

    kernel-rt as a component of Red Hat Enterprise Linux 9 · kernel-rt-core as a component of Red Hat Enterprise Linux 9 · kernel-rt-debug as a component of Red Hat Enterprise Linux 9 · +19 more

  • ICSA-26-295-11 CISA5 known affected

    Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= V3.1.7 · SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= V3.1.7 · SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= V3.1.7 · +2 more

  • SSA-457936 Siemens ProductCERT5 known affected

    SSA-457936: Vulnerabilities in the additional GNU/Linux subsystem of the SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP V3.1.7

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= V3.1.7 · SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= V3.1.7 · SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= V3.1.7 · +2 more

  • ICSA-26-209-04 CISA5 known affected

    Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= V3.1.6 · SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= V3.1.6 · SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= V3.1.6 · +2 more

  • SSA-019113 Siemens ProductCERT5 known affected

    SSA-019113: Vulnerabilities in the additional GNU/Linux subsystem of the SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP V3.1.6

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= V3.1.6 · SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= V3.1.6 · SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= V3.1.6 · +2 more

  • RHSA-2026:35896 Red Hat Product Security50 products fixed

    Red Hat Security Advisory: kernel security update

12 more advisories

Full record on NVD

Fix

  1. Update Linux linux kernel to 6.19.13 · 6.18.23 · 6.12.82 · 6.6.135 · 6.1.169 · 5.15.203
  2. Vendor fix Red Hat Product Security RHSA-2026:35896 · 50 productsFor details on how to apply this update, which includes the changes described in this advisory, refer to: https://access.redhat.com/articles/11258 The system must be rebooted for this update to take effect.
  3. Workaround from the vendor Red Hat Product Security RHSA-2026:35896 · 50 productsMitigation for this issue is either not available or the currently available options don't meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.
  4. Mitigation from the vendor CISA ICSA-26-295-11 · 5 productsLimit access to the interactive shell of the additional GNU/Linux subssytem to trusted personnel only.
  5. Mitigation from the vendor CISA ICSA-26-295-11 · 5 productsOnly build and run applications from trusted sources.
  6. Mitigation from the vendor Siemens ProductCERT SSA-457936 · 5 productsLimit access to the interactive shell of the additional GNU/Linux subssytem to trusted personnel only.
  7. Mitigation from the vendor Siemens ProductCERT SSA-457936 · 5 productsOnly build and run applications from trusted sources.

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof-of-concept repositories
none listed
PoC-in-GitHub

Sources

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Published
2026-04-24
Last Modified
2026-10-19
NVD status
Modified
MSRC Title
mptcp: fix slab-use-after-free in __inet_lookup_established

Frequently asked questions

What is CVE-2026-31669?

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.

Is CVE-2026-31669 actively exploited?

Active exploitation of CVE-2026-31669 has not been confirmed. Its EPSS score was 0.8% on 2026-10-22, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2026-31669?

CVE-2026-31669 has a CVSS v3 base score of 9.8 (CRITICAL severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Running Linux kernel? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month