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.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The kernel bug miscalculates the TCP Fast Open queue length when a listener socket using SO_REUSEPORT is migrated. The accounting code increases the counter for the new listener while decreasing it for the old one, leaving the counter negative and the limit ineffective. An attacker who can provoke such a migration can therefore cause the kernel to accept an unchecked number of pending Fast Open connections, exhausting resources and potentially crashing the system.

Affected Systems

Linux kernel builds that enable TCP Fast Open and SO_REUSEPORT are affected. The advisory does not specify exact kernel versions; any distribution that ships the default kernel is potentially vulnerable until the patch is applied.

Risk and Exploitability

Public exploitation data is absent and the EPSS score is not available, suggesting no known exploit in the wild. The defect requires an attacker to trigger listener migration, typically by restarting or manipulating server processes, so it is unlikely to be widely exploited. Nonetheless, the unchecked resource allocation provides a clear denial of service vector, and administrators should consider the vulnerability as medium to high risk until a patch is deployed.

Generated by OpenCVE AI on August 22, 2026 at 17:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Obtain and install the latest kernel version that includes the fix for TFO max_qlen accounting, ensuring the package or source contains the Git commit that implements the corrected accounting during reuseport migration.
  • If a timely kernel upgrade is not yet possible, disable TCP Fast Open on the affected hosts by setting the sysctl net.ipv4.tcp_fastopen to 0 or removing the TCP_fast_open option from application sockets, thereby eliminating the vulnerability’s attack surface.
  • Monitor system logs and connection metrics for abnormal increases in pending Fast Open requests; if such spikes occur, review listener migration patterns and verify that the kernel version is up to date.

Generated by OpenCVE AI on August 22, 2026 at 17:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
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.
Title tcp: fix TFO max_qlen accounting across reuseport migration
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-22T15:32:58.414Z

Reserved: 2026-08-15T05:44:03.926Z

Link: CVE-2026-74696

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:44.153

Modified: 2026-08-22T16:16:44.153

Link: CVE-2026-74696

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T17:30:02Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling