CyberSecBulletin
CVE-2026-31669NVD status: Modified

Linux: Use After Free

CVE-2026-31669 is a critical-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 9.8 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. The record lists versions f6e1f25fa5e733570f6d6fe37a4dfed2a0deba47, fb1f54b7d16f393b8b65d328410f78b4beea8fcc, 3fd6547f5b8ac99687be6d937a0321efda760597 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.47% chance of exploitation within 30 days, which is low compared with other CVEs.

Patch this week

Critical severity: a successful attack would have severe impact.

What to do

  1. Update Linux to f6e1f25fa5e733570f6d6fe37a4dfed2a0deba47 or fb1f54b7d16f393b8b65d328410f78b4beea8fcc or 3fd6547f5b8ac99687be6d937a0321efda760597 or eb9c6aeb512f877cf397deb1e4526f646c70e4a7, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 5.15.203 or 6.1.169 or 6.6.135 or 6.12.82, whichever matches your release line, or a later version.
  3. Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinuxb19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, f6e1f25fa5e733570f6d6fe37a4dfed2a0deba47; b19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, fb1f54b7d16f393b8b65d328410f78b4beea8fcc; b19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, 3fd6547f5b8ac99687be6d937a0321efda760597; b19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, eb9c6aeb512f877cf397deb1e4526f646c70e4a7; b19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, 15fa9ead4d5e6b6b9c794e84144146c917f2cb62; b19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, b313e9037d98c13938740e5ebda7852929366dff; b19bc2945b40b9fd38e835700907ffe8534ef0de up to, but not including, 9b55b253907e7431210483519c5ad711a37dafa1; 5.12f6e1f25fa5e733570f6d6fe37a4dfed2a0deba47, fb1f54b7d16f393b8b65d328410f78b4beea8fcc, 3fd6547f5b8ac99687be6d937a0321efda760597, eb9c6aeb512f877cf397deb1e4526f646c70e4a7, 15fa9ead4d5e6b6b9c794e84144146c917f2cb62, b313e9037d98c13938740e5ebda7852929366dff
SiemensSIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0)V3.1.6 and later; V3.1.5 and later; V3.1.7 and laterNot stated
SiemensSIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0)V3.1.6 and later; V3.1.5 and later; V3.1.7 and laterNot stated
SiemensSIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0)V3.1.6 and later; V3.1.5 and later; V3.1.7 and laterNot stated
SiemensSIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0)V3.1.6 and later; V3.1.5 and later; V3.1.7 and laterNot stated
SiemensSIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0)V3.1.6 and later; V3.1.5 and later; V3.1.7 and laterNot stated
LinuxLinux Kernel5.12.1 up to, but not including, 5.15.203; 5.16 up to, but not including, 6.1.169; 6.2 up to, but not including, 6.6.135; 6.7 up to, but not including, 6.12.82; 6.13 up to, but not including, 6.18.23; 6.19 up to, but not including, 6.19.13; 5.12; 7.05.15.203, 6.1.169, 6.6.135, 6.12.82, 6.18.23, 6.19.13

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
NetworkCan be exploited remotely over a network, including the internet.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
NoneNo account or login is needed.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Scored by CNA.

Official 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.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Use After Free

The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.

How developers prevent this class of flaw

  • Choose a language that provides automatic memory management.
  • When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.

More Use After Free vulnerabilities (CWE-416)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Recent Use After Free vulnerabilities

Spotted an error? Tell us.