CVE-2026-88012: Traefik: respondingTimeouts.readTimeout is not applied to HTTP/3, leaving slow-body uploads unbounded
There is a medium severity vulnerability in Traefik’s HTTP/3 entry points: the respondingTimeouts settings were not applied to the HTTP/3 request path. readTimeout in particular is on by default at 60s and is documented as bounding the time to read the entire request including its body, but it is enforced as a deadline on the TCP connection, which cannot reach a QUIC stream, and Traefik’s HTTP/3 server was constructed with no timeout of any kind. An unauthenticated client that trickles a request body therefore holds a request open for as long as it chooses, and with it one upstream connection per request, at negligible cost to itself. Backends with bounded connection pools are the practical pressure point.
The HTTP/3 path lost these timeouts in v2.8.2, when a quic-go API change removed the embedded http.Server that had carried them; every release from v2.8.2 onward is affected, and releases before v2.8.2 are not. Traefik v2.8.2 through v2.10.x and v3.0 through v3.6 are affected and are no longer maintained: they will not receive a patch on their own line, and the remedy for their users is to upgrade to v2.11.56 or v3.7.12.
entryPoints.<name>.transport.respondingTimeouts.readTimeout is documented as:
“Set the timeouts for incoming requests to the Traefik instance. This is the maximum duration for reading the entire request, including the body.” — Default: 60s
It is on by default and it works over HTTP/1.1 and HTTP/2. It has no effect on HTTP/3.
The consequence is not that a hardening option was left unset. It is that every Traefik
deployment with http3 enabled carries a 60-second bound that the operator has every
reason to believe is in force, and which is silently absent on that protocol. A single
client trickling one body byte every few seconds holds a request open indefinitely, and
with it one upstream connection per request.
readTimeout is applied as a deadline on the TCP connection. HTTP/3 does not have
one, and Traefik’s HTTP/3 server is constructed with no timeout of any kind.
References
- github.com/advisories/GHSA-7ghq-v6jf-g56c
- github.com/traefik/traefik/commit/a8d0bc425859dde7481a6c9a324e610b81d754d0
- github.com/traefik/traefik/pull/13717
- github.com/traefik/traefik/releases/tag/v2.11.56
- github.com/traefik/traefik/releases/tag/v3.7.12
- github.com/traefik/traefik/security/advisories/GHSA-7ghq-v6jf-g56c
- nvd.nist.gov/vuln/detail/CVE-2026-88012
Code Behaviors & Features
Detect and mitigate CVE-2026-88012 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →