SecBoard
Zurück zur CVE-Übersicht

CVE-2026-31669

CRITICAL(9.8)

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Risk Signal Score25/100 — MITTEL
  • CVSS 9.8 — Kritisch

Erwähnungen (letzte 60 Tage)

Artikel

EPSS-Score

0.8%

Exploit-Wahrscheinlichkeit (30 Tage)

CVSS Score

9.8

Technische Schwere

SecBoard-Einordnung

CVE-2026-31669 betrifft den Linux-Kernel und ist eine Slab-Use-After-Free-Schwachstelle im Multipath TCP (MPTCP) Subflow-Initialisierungsprozess. Diese Schwachstelle kann dazu führen, dass bei gleichzeitigen ehash-Lookups auf freigegebenen Speicher zugegriffen wird, was zu einem Systemabsturz oder potenziell zur Ausführung von beliebigem Code führen kann. Das Problem entsteht, weil MPTCP v6 Subflow-Child-Sockets über kmalloc statt über den TCPv6-Slab-Cache zugewiesen werden, wodurch die RCU-Sicherheit umgangen wird. Die Schwachstelle wurde durch eine Anpassung der Initialisierungsreihenfolge behoben, um sicherzustellen, dass der korrekte Slab-Cache mit SLAB_TYPESAFE_BY_RCU verwendet wird. Mit einem CVSS-Score von 9.8 (CRITICAL) ist diese Schwachstelle als äußerst kritisch einzustufen. Obwohl die EPSS-Wahrscheinlichkeit für eine Ausnutzung mit 1% derzeit niedrig ist und die Schwachstelle nicht in der KEV-Liste aufgeführt ist, deutet der hohe CVSS-Wert auf ein erhebliches potenzielles Risiko hin. Die fehlenden strukturierten CPE-Daten erschweren eine genaue Identifizierung betroffener Produkte, jedoch ist der Linux-Kernel als Basis vieler Systeme weit verbreitet. Security-Teams sollten umgehend prüfen, ob ihre Linux-Systeme von dieser Schwachstelle betroffen sind und die entsprechenden Kernel-Updates einspielen, sobald diese verfügbar sind. Eine Priorisierung der Patch-Implementierung ist aufgrund der Kritikalität und der potenziellen Auswirkungen dringend empfohlen, um die Stabilität und Sicherheit der Systeme zu gewährleisten. Bis zur vollständigen Behebung sollten Systeme auf ungewöhnliche Aktivitäten überwacht werden, insbesondere in Umgebungen, die MPTCP nutzen.

KI-gestützte Einordnung auf Basis der NVD-Daten.

Beschreibung

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.

Betroffene Produkte

  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:5.12:-:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*

Referenzen