CVE-2024-26826

mptcp: fix data re-injection from stale subflow

State
Published
Severity
7.5 High
Published
Apr 17, 2024
Updated
Aug 5, 2026
Reserved
Feb 19, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

mptcp: fix data re-injection from stale subflow

When the MPTCP PM detects that a subflow is stale, all the packet scheduler must re-inject all the mptcp-level unacked data. To avoid acquiring unneeded locks, it first try to check if any unacked data is present at all in the RTX queue, but such check is currently broken, as it uses TCP-specific helper on an MPTCP socket.

Funnily enough fuzzers and static checkers are happy, as the accessed memory still belongs to the mptcp_sock struct, and even from a functional perspective the recovery completed successfully, as the short-cut test always failed.

A recent unrelated TCP change - commit d5fed5addb2b ("tcp: reorganize tcp_sock fast path variables") - exposed the issue, as the tcp field reorganization makes the mptcp code always skip the re-inection.

Fix the issue dropping the bogus call: we are on a slow path, the early optimization proved once again to be evil.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1e1d9d6f119c55c05e8ea78ed3e49046690abffd to before 6f95120f898b40d13fd441225ef511307853c9c2Affected
  • 1e1d9d6f119c55c05e8ea78ed3e49046690abffd to before 6673d9f1c2cd984390550dbdf7d5ae07b20abbf8Affected
  • 1e1d9d6f119c55c05e8ea78ed3e49046690abffd to before b609c783c535493aa3fca22c7e40a120370b1ca5Affected
  • 1e1d9d6f119c55c05e8ea78ed3e49046690abffd to before 624902eab7abcb8731b333ec73f206d38d839cd8Affected
  • 1e1d9d6f119c55c05e8ea78ed3e49046690abffd to before b6c620dc43ccb4e802894e54b651cf81495e9598Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 5.15.149 through 5.15.*Not affected
  • 6.1.79 through 6.1.*Not affected
  • 6.6.18 through 6.6.*Not affected
  • 6.7.6 through 6.7.*Not affected
  • 6.8 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.