ZeroHour

CVE-2026-12611

large

HTTP/2 DoS in Eclipse Jetty via RST_STREAM/GOAWAY race condition

CVSS 4.0
8.7 high
EPSS
<1%p17
Published
()
Modified
AI analysis

Eclipse Jetty contains a denial-of-service flaw in its HTTP/2 server implementation, caused by a race condition when handling RST_STREAM and GOAWAY frames sent by a client. The race condition resets the HTTP2Flusher.terminated field from a non-null value back to null, which allows entries to be enqueued in the flusher that are never processed; these unprocessed entries are the ones that would unblock write-blocked threads. A remote, unauthenticated client can trigger this by issuing HTTP/2 requests that cause blocking writes, eventually leaving all threads blocked and the entire server unresponsive, with availability impact only per the CVSS 4.0 vector. Any Jetty server deployment with HTTP/2 enabled, including Jetty embedded inside other applications and products, is affected. Exploitation has not been observed: no public proof-of-concept is known, the flaw is not in CISA KEV, and EPSS assigns only a 0.3% probability of exploitation within 30 days.

What to do: Upgrade Jetty (including embedded copies repackaged inside other products) to the fixed version identified in the Eclipse Jetty advisory for CVE-2026-12611, and confirm whether HTTP/2 is enabled on internet-facing endpoints. As an interim mitigation, consider disabling HTTP/2 on exposed Jetty servers or fronting them with a proxy/CDN that terminates HTTP/2, and monitor thread pools for signs of full exhaustion and server unresponsiveness.

Affected
Eclipse Jetty
Estimated exposure
largeon the order of 100,000+ internet-facing Jetty servers (estimate; only those with HTTP/2 enabled) — Jetty is one of the most widely used and widely embedded Java servlet containers, and public internet-wide scans have historically surfaced hundreds of thousands of Jetty instances, but only servers with HTTP/2 enabled are vulnerable, so…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

A client may issue HTTP/2 requests to a Jetty server that result in blocking writes that are never unblocked, eventually causing all threads to be blocked and the whole server to become unresponsive. This is caused by a race condition in the server when handling RST_STREAM frames and GOAWAY frames sent by the client. The race condition "resets" the HTTP2Flusher.terminated, previously set to a non-null value, to the null value, allowing entries to be enqueued in the flusher that however will never be processed. These unprocessed entries are the ones that would unblock the write-blocked threads.

Weakness
CWE-400
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.