CVE-2025-53506
NoneApache Tomcat Coyote vulnerable to Denial of Service via excessive HTTP/2 streams
CVSS
—
EPSS
2.1%
Published
Jul 10, 2025
CISA due date
—
Cloudanix analysis
A flaw in Tomcat can let someone overwhelm a website or application by abusing how it handles certain web connections, making the service slow or unavailable.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Web Framework
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Apache Tomcat’s HTTP/2 handling could consume excessive server resources when a client failed to acknowledge the initial SETTINGS frame that lowers the allowed number of concurrent streams. By keeping the connection in a state where Tomcat has not received the expected SETTINGS acknowledgement, an attacker can cause Tomcat to permit or track more stream activity than intended, leading to uncontrolled memory, CPU, thread, or connection-state consumption. The impact is denial of service rather than code execution or data disclosure.
Why it matters to the business
A vulnerable Tomcat server with HTTP/2 enabled can be made slow or unavailable by a remote client, potentially disrupting web applications, APIs, customer portals, and dependent services. The issue is not currently listed in CISA KEV and has a relatively low EPSS score, but public awareness is established and denial-of-service flaws in internet-facing application servers can still be operationally significant. Organizations using Tomcat 9, 10.1, or 11 should treat exposed HTTP/2 endpoints as higher priority, especially where availability is critical.
How an attack unfolds
An attacker identifies an Apache Tomcat instance that supports HTTP/2 and runs an affected version. The attacker opens one or more HTTP/2 sessions and intentionally does not acknowledge Tomcat’s initial SETTINGS frame, particularly the setting that reduces the maximum concurrent stream limit. The attacker then maintains or repeats these connections to force Tomcat to retain HTTP/2 connection and stream state beyond the intended limits. At scale, this can exhaust server resources or degrade request handling for legitimate users. The technique is associated with HTTP/2 resource-exhaustion activity such as the MadeYouReset-style abuse pattern, where protocol-level behavior rather than application logic is used to disrupt service.
How to fix it
Upgrade Apache Tomcat to a fixed version: 11.0.9 or later for the 11.x branch, 10.1.43 or later for the 10.1.x branch, or 9.0.107 or later for the 9.x branch. If immediate upgrade is not possible, consider disabling HTTP/2 support on vulnerable Tomcat connectors, placing the service behind a reverse proxy or load balancer with strict HTTP/2 connection and stream limits, reducing idle and keep-alive timeouts, enforcing per-IP connection limits, and using rate limiting or DDoS protection for exposed endpoints. Mitigations should be treated as temporary until Tomcat is upgraded.
How to confirm the fix worked
Confirm the deployed Tomcat runtime version is 11.0.9+, 10.1.43+, or 9.0.107+. Verify that all application nodes, containers, base images, embedded Tomcat runtimes, and downstream packages have been rebuilt or redeployed with the fixed version. Check connector configuration to determine whether HTTP/2 is enabled; if HTTP/2 remains enabled, confirm protective limits are enforced at Tomcat or upstream proxy layers. From an external perspective, validate exposure by checking whether the service negotiates HTTP/2 via ALPN and whether the responding stack is Tomcat-backed. After remediation, monitor that abnormal HTTP/2 connection growth no longer causes elevated CPU, memory, connection counts, thread usage, or request latency.
Typical attack path
- Scan for internet-facing services that advertise HTTP/2 and appear to be Apache Tomcat or Tomcat-backed applications.
- Confirm that the target is running an affected Tomcat version: 11.0.0-M1 through 11.0.8, 10.1.0-M1 through 10.1.42, or 9.0.0.M1 through 9.0.106.
- Establish HTTP/2 connections to the target service.
- Withhold acknowledgement of Tomcat’s initial HTTP/2 SETTINGS frame that reduces the permitted concurrent streams.
- Generate or maintain enough HTTP/2 connection and stream activity to consume Tomcat resources.
- Repeat across multiple connections or source addresses until the application becomes slow, unstable, or unavailable.
How to detect it
To assess prior exploitation, review web server, reverse proxy, load balancer, WAF, and Tomcat logs for bursts of HTTP/2 traffic where clients open connections but do not complete expected SETTINGS acknowledgement behavior. Correlate these events with elevated CPU, heap usage, garbage collection pressure, thread pool saturation, connection count spikes, 5xx responses, increased request latency, application restarts, or out-of-memory conditions. Useful log sources include Tomcat catalina logs, access logs with protocol fields, reverse proxy HTTP/2 telemetry, load balancer connection metrics, WAF event logs, JVM metrics, garbage collection logs, container orchestration restart events, and network flow data. Look for repeated HTTP/2 sessions from the same source addresses or distributed sources, unusually long-lived idle or semi-active HTTP/2 connections, high rates of stream creation, GOAWAY/RST_STREAM activity, and time-correlated service degradation. Because the exploit may not create a unique application-layer payload, detection should focus on protocol anomalies and resource-exhaustion symptoms rather than request URIs alone.
- HTTP/2 SETTINGS ACK not received
- SETTINGS frame not acknowledged
- initial SETTINGS frame
- MAX_CONCURRENT_STREAMS
- too many active streams
- RST_STREAM
- GOAWAY
- org.apache.coyote.http2
- Http2UpgradeHandler
- ConnectionException
- StreamException
- OutOfMemoryError
- java.lang.OutOfMemoryError
- GC overhead limit exceeded
- unable to create new native thread
- RejectedExecutionException
- 503
- 504
What your security team should do
- Inventory all Apache Tomcat deployments, including container images, embedded application servers, vendor appliances, and packaged Java applications that bundle Tomcat.
- Prioritize upgrades for internet-facing Tomcat services and business-critical applications that have HTTP/2 enabled.
- Upgrade affected branches to Tomcat 11.0.9+, 10.1.43+, or 9.0.107+ and redeploy all dependent workloads.
- If patching is delayed, disable HTTP/2 or enforce strict HTTP/2 limits at reverse proxies, load balancers, WAFs, and edge services.
- Add monitoring for spikes in HTTP/2 connections, incomplete SETTINGS acknowledgements, excessive concurrent streams, connection resets, and abnormal Tomcat resource utilization.
- Review availability incident timelines since publication for unexplained Tomcat slowdowns, restarts, thread exhaustion, memory pressure, or HTTP/2 error bursts.
- Ensure operational runbooks include rapid HTTP/2 disablement or traffic filtering as an emergency mitigation for application-layer denial-of-service events.
The record
Uncontrolled Resource Consumption vulnerability in Apache Tomcat if an HTTP/2 client did not acknowledge the initial settings frame that reduces the maximum permitted concurrent streams. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.8, from 10.1.0-M1 through 10.1.42, from 9.0.0.M1 through 9.0.106. Users are recommended to upgrade to version 11.0.9, 10.1.43 or 9.0.107, which fix the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.apache.tomcat:tomcat-coyote | 10.1.0-M1 | 10.1.43 |
| Maven | org.apache.tomcat:tomcat-coyote | 11.0.0-M1 | 11.0.9 |
| Maven | org.apache.tomcat:tomcat-coyote | 8.5.0 | No fix |
| Maven | org.apache.tomcat:tomcat-coyote | 9.0.0.M1 | 9.0.107 |
| AlmaLinux:10 | tomcat9 | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-admin-webapps | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-docs-webapp | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-el-3.0-api | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-jsp-2.3-api | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-lib | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-servlet-4.0-api | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-webapps | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:8 | tomcat | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-admin-webapps | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-docs-webapp | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-el-3.0-api | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-jsp-2.3-api | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-lib | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-servlet-4.0-api | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-webapps | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:9 | tomcat | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-admin-webapps | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-docs-webapp | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-el-3.0-api | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-jsp-2.3-api | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-lib | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-servlet-4.0-api | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-webapps | 0 | 1:9.0.87-3.el9_6.3 |
| Bitnami | tomcat | 0 | 9.0.107 |
| Bitnami | tomcat | 9.0.0 | 9.0.107 |
| Chainguard | tomcat-10.1 | 0 | 10.1.43-r0 |
| Chainguard | tomcat-10.1-openjdk-11 | 0 | 10.1.43-r0 |
| Chainguard | tomcat-10.1-openjdk-17 | 0 | 10.1.43-r0 |
| Chainguard | tomcat-10.1-openjdk-21 | 0 | 10.1.43-r0 |
| Chainguard | tomcat-10.1-webapps | 0 | 10.1.43-r0 |
| Chainguard | tomcat-11.0 | 0 | 11.0.9-r0 |
| Chainguard | tomcat-11.0-openjdk-17 | 0 | 11.0.9-r0 |
| Chainguard | tomcat-11.0-openjdk-21 | 0 | 11.0.9-r0 |
| Chainguard | tomcat-11.0-openjdk-25 | 0 | 11.0.9-r0 |
| Chainguard | tomcat-8.5.87-jamf-compat | 0 | 8.5.87-r3 |
| Debian:11 | tomcat9 | 0 | No fix |
| Debian:12 | tomcat10 | 0 | No fix |
| Debian:12 | tomcat9 | 0 | 9.0.70-2 |
| Debian:13 | tomcat10 | 0 | No fix |
| Debian:13 | tomcat11 | 0 | No fix |
| Debian:13 | tomcat9 | 0 | 9.0.70-2 |
| Mageia:9 | tomcat | 0 | 9.0.108-1.mga9 |
| SUSE:Enterprise Storage 7.1 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat11 | 0 | 11.0.9-150600.13.6.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat11 | 0 | 11.0.9-150600.13.6.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | tomcat | 0 | 9.0.36-3.148.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Manager Server LTS 4.3 | tomcat | 0 | 9.0.108-150200.91.1 |
| Wolfi | tomcat-10.1 | 0 | 10.1.43-r0 |
| Wolfi | tomcat-10.1-openjdk-11 | 0 | 10.1.43-r0 |
| Wolfi | tomcat-10.1-openjdk-17 | 0 | 10.1.43-r0 |
| Wolfi | tomcat-10.1-openjdk-21 | 0 | 10.1.43-r0 |
| Wolfi | tomcat-10.1-webapps | 0 | 10.1.43-r0 |
| Wolfi | tomcat-11.0 | 0 | 11.0.9-r0 |
| Wolfi | tomcat-11.0-openjdk-17 | 0 | 11.0.9-r0 |
| Wolfi | tomcat-11.0-openjdk-21 | 0 | 11.0.9-r0 |
| Wolfi | tomcat-11.0-openjdk-25 | 0 | 11.0.9-r0 |
| maven | org.apache.tomcat/tomcat-coyote | 10.1.0-M1 | 10.1.43 |
| maven | org.apache.tomcat/tomcat-coyote | 11.0.0-M1 | 11.0.9 |
| maven | org.apache.tomcat/tomcat-coyote | 8.5.0 | No fix |
| maven | org.apache.tomcat/tomcat-coyote | 9.0.0.M1 | 9.0.107 |
| openSUSE:Leap 15.6 | tomcat | 0 | 9.0.108-150200.91.1 |
| openSUSE:Leap 15.6 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| openSUSE:Leap 15.6 | tomcat11 | 0 | 11.0.9-150600.13.6.1 |
| openSUSE:Tumbleweed | tomcat | 0 | 9.0.107-1.1 |
| openSUSE:Tumbleweed | tomcat10 | 0 | 10.1.43-1.1 |
| openSUSE:Tumbleweed | tomcat11 | 0 | 11.0.9-1.1 |
Related vulnerabilities
- CVE-2025-48989 Improper Resource Shutdown or Release vulnerability in Apache Tomcat made Tomcat… Also affects org.apache.tomcat:tomcat-coyote
- CVE-2025-31650 Apache Tomcat Denial of Service via invalid HTTP priority header Also affects org.apache.tomcat:tomcat-coyote
- CVE-2024-52317 Incorrect object re-cycling and re-use vulnerability in Apache Tomcat. Incorrect… Also affects org.apache.tomcat:tomcat-coyote
- CVE-2024-34750 Improper Handling of Exceptional Conditions, Uncontrolled Resource Consumption… Also affects org.apache.tomcat:tomcat-coyote
- CVE-2024-24549 Denial of Service due to improper input validation vulnerability for HTTP/2 requests in… Also affects org.apache.tomcat:tomcat-coyote
- CVE-2023-44487 The HTTP/2 protocol allows a denial of service (server resource consumption) because… Also affects org.apache.tomcat:tomcat-coyote
- CVE-2023-24998 Apache Commons FileUpload before 1.5 does not limit the number of request parts to be… Also affects org.apache.tomcat:tomcat-coyote
- CVE-2020-17527 While investigating bug 64830 it was discovered that Apache Tomcat 10.0.0-M1 to… Also affects org.apache.tomcat:tomcat-coyote