Description
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".
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
36b122baf6a8bd46b4a591f12f4ed17b22257408 to < f75f174edc865738522e514d042cf5627f084859affected36b122baf6a8bd46b4a591f12f4ed17b22257408 to < fca7e444c04689fe4cc6b56f2725f804a4bb1ef9affected36b122baf6a8bd46b4a591f12f4ed17b22257408 to < 75e564b2ced1cc3d9a8904c7d2d2bb448fffb8b5affected36b122baf6a8bd46b4a591f12f4ed17b22257408 to < 72b4a0c51a4b550d40301d60a366b429b8c8e78daffected36b122baf6a8bd46b4a591f12f4ed17b22257408 to < e00b63056fb4f261455b3e5df5268a1f8ce47a87affected
Linux Linux
Default version status: affected
6.2affected0 to < 6.2unaffected6.6.153 to ≤ 6.6.*unaffected6.12.105 to ≤ 6.12.*unaffected6.18.46 to ≤ 6.18.*unaffected7.1.10 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f75f174edc865738522e514d042cf5627f084859 ↗
- https://git.kernel.org/stable/c/fca7e444c04689fe4cc6b56f2725f804a4bb1ef9 ↗
- https://git.kernel.org/stable/c/75e564b2ced1cc3d9a8904c7d2d2bb448fffb8b5 ↗
- https://git.kernel.org/stable/c/72b4a0c51a4b550d40301d60a366b429b8c8e78d ↗
- https://git.kernel.org/stable/c/e00b63056fb4f261455b3e5df5268a1f8ce47a87 ↗