Description
In the Linux kernel, the following vulnerability has been resolved: tcp: fix TFO max_qlen accounting across reuseport migration A listener's TCP_FASTOPEN max_qlen stops being accurate and lets through far more pending Fast Open requests than it was configured for. This only shows up with SO_REUSEPORT listener migration, where closing a listener hands its still-pending TFO children over to a surviving one. fastopenq.qlen is charged in tcp_fastopen_create_child() when the child is created and uncharged in reqsk_fastopen_remove() when the handshake completes. The uncharge follows rsk_listener of the request the child points at, and inet_reqsk_clone() has repointed the child at a new request owned by the new listener, so the ++ and the -- land on two different sockets. The new listener's qlen drifts negative and its limit no longer binds. Charge the new listener during migration, like reqsk_queue_migrated() already does for queue->young and queue->qlen.
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
54b92e84193749c9968aff2dd46e3b0f42643e18 to < e98f0d80b9cccb5f828425d2004f9686e7d1ae24affected54b92e84193749c9968aff2dd46e3b0f42643e18 to < b6247e0f96bd825ffb2005257f6177b5e642dee6affected54b92e84193749c9968aff2dd46e3b0f42643e18 to < 585fc5247d14939a561056aa2addd9b7c2b1f670affected54b92e84193749c9968aff2dd46e3b0f42643e18 to < 6e10ee56524a26b250229ad348637825646ddb88affected54b92e84193749c9968aff2dd46e3b0f42643e18 to < a66e869cf0c90c1e47ae75f72b6482acbfc808ffaffected54b92e84193749c9968aff2dd46e3b0f42643e18 to < d974618b2097453778389d385e3741629c40e0a3affected54b92e84193749c9968aff2dd46e3b0f42643e18 to < a0ab2ba83e35159d81cec830a92e885ecf8139beaffected
Linux Linux
Default version status: affected
5.14affected0 to < 5.14unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.152 to ≤ 6.6.*unaffected6.12.104 to ≤ 6.12.*unaffected6.18.45 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/e98f0d80b9cccb5f828425d2004f9686e7d1ae24 ↗
- https://git.kernel.org/stable/c/b6247e0f96bd825ffb2005257f6177b5e642dee6 ↗
- https://git.kernel.org/stable/c/585fc5247d14939a561056aa2addd9b7c2b1f670 ↗
- https://git.kernel.org/stable/c/6e10ee56524a26b250229ad348637825646ddb88 ↗
- https://git.kernel.org/stable/c/a66e869cf0c90c1e47ae75f72b6482acbfc808ff ↗
- https://git.kernel.org/stable/c/d974618b2097453778389d385e3741629c40e0a3 ↗
- https://git.kernel.org/stable/c/a0ab2ba83e35159d81cec830a92e885ecf8139be ↗