Lucene search

K
cvelistLinuxCVELIST:CVE-2024-26826
HistoryApr 17, 2024 - 9:43 a.m.

CVE-2024-26826 mptcp: fix data re-injection from stale subflow

2024-04-1709:43:51
Linux
www.cve.org
linux kernel
mptcp
data re-injection

7.5 High

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

15.7%

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.

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "net/mptcp/protocol.c"
    ],
    "versions": [
      {
        "version": "1e1d9d6f119c",
        "lessThan": "6f95120f898b",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1e1d9d6f119c",
        "lessThan": "6673d9f1c2cd",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1e1d9d6f119c",
        "lessThan": "b609c783c535",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1e1d9d6f119c",
        "lessThan": "624902eab7ab",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "1e1d9d6f119c",
        "lessThan": "b6c620dc43cc",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "net/mptcp/protocol.c"
    ],
    "versions": [
      {
        "version": "5.15",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "5.15",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.15.149",
        "lessThanOrEqual": "5.15.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.1.79",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.18",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.7.6",
        "lessThanOrEqual": "6.7.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.8",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

7.5 High

AI Score

Confidence

High

0.0004 Low

EPSS

Percentile

15.7%