CVE-2024-22201
High · 7.5CVSS
7.5
EPSS
1.4%
Published
Feb 26, 2024
CISA due date
—
Cloudanix analysis
A problem in the Jetty web server lets attackers drain its available connections until it can no longer handle real users.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Network Service
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
An HTTP/2 SSL connection that is established and TCP congested is leaked when it times out, causing exhaustion of file descriptors.
Why it matters to the business
The server may run out of file descriptors and stop accepting new connections from valid clients, leading to denial of service. The issue affects a widely used Java web server component with many downstream dependents.
How an attack unfolds
An attacker causes many HTTP/2 SSL connections to become TCP congested. When the connections time out they are leaked instead of being released, accumulating until the server exhausts file descriptors and becomes unavailable.
How to fix it
Upgrade eclipse/jetty.project to version 9.4.54, 10.0.20, 11.0.20, 12.0.6 or later (fixed in commit 78ab6e6ba163f89cdd97f2ae0283fbb5e371cfaf).
How to confirm the fix worked
Confirm the running Jetty version matches or exceeds a fixed release and test under sustained connection load to verify file descriptors are released on timeout.
Typical attack path
- Establish multiple HTTP/2 SSL connections to the target server
- Induce TCP congestion on the connections
- Allow the connections to time out while keeping them in the leaked state
- Repeat the process until file descriptors are exhausted
How to detect it
Review server logs for large numbers of timed-out HTTP/2 SSL connections that remain open and correlate with rising file descriptor usage.
What your security team should do
- Apply the listed fixed versions immediately due to the public disclosure and potential for resource exhaustion
- Monitor file descriptor and connection counts in production environments
- Consider connection rate limiting or timeouts as temporary mitigations
The record
Jetty is a Java based web server and servlet engine. An HTTP/2 SSL connection that is established and TCP congested will be leaked when it times out. An attacker can cause many connections to end up in this state, and the server may run out of file descriptors, eventually causing the server to stop accepting new connections from valid clients. The vulnerability is patched in 9.4.54, 10.0.20, 11.0.20, and 12.0.6.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.eclipse.jetty.http2:http2-common | 10.0.0 | 10.0.20 |
| Maven | org.eclipse.jetty.http2:http2-common | 11.0.0 | 11.0.20 |
| Maven | org.eclipse.jetty.http2:http2-common | 9.3.0 | 9.4.54 |
| Maven | org.eclipse.jetty.http2:jetty-http2-common | 12.0.0 | 12.0.6 |
| Maven | org.eclipse.jetty.http3:http3-common | 10.0.8 | 10.0.20 |
| Maven | org.eclipse.jetty.http3:http3-common | 11.0.8 | 11.0.20 |
| Maven | org.eclipse.jetty.http3:jetty-http3-common | 12.0.0 | 12.0.6 |
| Chainguard | neo4j | 0 | 5.18.0-r0 |
| Chainguard | neo4j-oci-entrypoint | 0 | 5.18.0-r0 |
| Chainguard | solr | 0 | 9.5.0-r1 |
| Chainguard | solr-oci-compat | 0 | 9.5.0-r1 |
| Debian:10 | jetty9 | 0 | 9.4.50-4+deb10u2 |
| Debian:11 | jetty9 | 0 | 9.4.50-4+deb11u2 |
| Debian:12 | jetty9 | 0 | 9.4.50-4+deb12u3 |
| Debian:13 | jetty9 | 0 | 9.4.54-1 |
| Red Hat:ocp_tools:4.12::el8 | jenkins | 0 | 0:2.440.3.1716445200-3.el8 |
| Red Hat:ocp_tools:4.12::el8 | jenkins-2-plugins | 0 | 0:4.12.1716445211-1.el8 |
| Red Hat:ocp_tools:4.13::el8 | jenkins | 0 | 0:2.440.3.1716445150-3.el8 |
| Red Hat:ocp_tools:4.13::el8 | jenkins-2-plugins | 0 | 0:4.13.1716445207-1.el8 |
| Red Hat:ocp_tools:4.14::el8 | jenkins | 0 | 0:2.440.3.1716387933-3.el8 |
| Red Hat:ocp_tools:4.14::el8 | jenkins-2-plugins | 0 | 0:4.14.1716388016-1.el8 |
| Red Hat:ocp_tools:4.15::el8 | jenkins | 0 | 0:2.440.3.1718879390-3.el8 |
| Red Hat:ocp_tools:4.15::el8 | jenkins-2-plugins | 0 | 0:4.15.1718879538-1.el8 |
| SUSE:Enterprise Storage 7.1 | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
| Ubuntu:14.04:LTS | jetty | 0 | No fix |
| Ubuntu:16.04:LTS | jetty | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | jetty | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | jetty | 0 | No fix |
| Wolfi | neo4j | 0 | 5.18.0-r0 |
| Wolfi | neo4j-oci-entrypoint | 0 | 5.18.0-r0 |
| Wolfi | solr | 0 | 9.5.0-r1 |
| Wolfi | solr-oci-compat | 0 | 9.5.0-r1 |
| maven | org.eclipse.jetty.http2/http2-common | 10.0.0 | 10.0.20 |
| maven | org.eclipse.jetty.http2/http2-common | 11.0.0 | 11.0.20 |
| maven | org.eclipse.jetty.http2/http2-common | 9.3.0 | 9.4.54 |
| maven | org.eclipse.jetty.http2/jetty-http2-common | 12.0.0 | 12.0.6 |
| maven | org.eclipse.jetty.http3/http3-common | 10.0.8 | 10.0.20 |
| maven | org.eclipse.jetty.http3/http3-common | 11.0.8 | 11.0.20 |
| maven | org.eclipse.jetty.http3/jetty-http3-common | 12.0.0 | 12.0.6 |
| openSUSE:Leap 15.5 | jetty-minimal | 0 | 9.4.54-150200.3.25.1 |
Related vulnerabilities
- CVE-2023-44487 The HTTP/2 protocol allows a denial of service (server resource consumption) because… Also affects org.eclipse.jetty.http2:http2-common
- CVE-2024-47535 Netty is an asynchronous event-driven network application framework for rapid development… Also affects neo4j
- CVE-2024-8184 Eclipse Jetty's ThreadLimitHandler.getRemote() vulnerable to remote DoS attacks Also affects neo4j
- CVE-2024-7254 protobuf-java has potential Denial of Service issue Also affects neo4j
- CVE-2024-29025 Netty is an asynchronous event-driven network application framework for rapid development… Also affects neo4j
- CVE-2024-29133 Out-of-bounds Write vulnerability in Apache Commons Configuration.This issue affects… Also affects neo4j
- CVE-2024-29131 Out-of-bounds Write vulnerability in Apache Commons Configuration.This issue affects… Also affects neo4j
- CVE-2024-26308 Allocation of Resources Without Limits or Throttling vulnerability in Apache Commons… Also affects neo4j