CRITICAL Introduced in 6.2
mptcp FastOpen StateConfusion
CVE-2026-80585
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H
KernelScan AI7.5HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: mptcp: fastopen: only mark MPTFO subflows with SYN data Passive TCP Fast Open accepts a valid-cookie SYN even when it carries no data. In that case the child socket's receive queue is intentionally left empty. mptcp_fastopen_subflow_synack_set_params() set is_mptfo before checking for queued SYN data. That made data-less TFO SYNs hit a WARN and, if the warning was non-fatal, left stale MPTFO state behind. The stale flag could later trigger a state-confusion bug in check_fully_established(). Only mark the subflow as MPTFO after confirming that an SKB was queued. Return quietly when the receive queue is empty. Note that mptcp_subflow_context's is_mptfo field is now not just about subflows where the TFO was present, but about MPTFO subflow that consumed SYN data. Only having a valid cookie but not carrying data is not really "doing TFO".
02KernelScan AI Analysis
Risk summary
A remote attacker can send a TCP Fast Open SYN with a valid cookie but no data to an MPTCP server, causing stale MPTFO state that triggers a kernel warning and potential state confusion in connection establishment. This leads to denial of service through kernel warnings or disrupted MPTCP connections.
Vulnerability analysis
When a passive MPTCP connection receives a TCP Fast Open SYN with a valid cookie but no data, the server-side code prematurely marks the subflow as MPTFO before checking whether any SYN data was actually queued. The empty receive queue then triggers a kernel warning, and if the warning is non-fatal, the stale MPTFO flag remains set and later confuses the connection establishment state machine. The fix moves the MPTFO flag assignment to after confirming that SYN data is present, and returns quietly when the receive queue is empty. This is reachable from the network by any unauthenticated attacker who can send TCP packets to an MPTCP server with TCP Fast Open enabled.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.2 | 6.12.105 | fca7e444c046 |
| 6.18 | 6.2 | 6.18.46 | 75e564b2ced1 |
| 6.6 | 6.2 | 6.6.153 | f75f174edc86 |
| 7.1 | 6.2 | 7.1.10 | 72b4a0c51a4b |
| mainline | 6.2 | 7.2 | e00b63056fb4 |
| cip/6.12 | 6.2 | 6.12.108-cip31 | fca7e444c046 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.108-cip31 |