CVE-2026-24733
Low · 3.7CVSS
3.7
EPSS
0.6%
Published
Feb 17, 2026
CISA due date
—
Cloudanix analysis
Some Tomcat-based websites may let outsiders reach protected pages if they use an unusual and unsafe combination of request rules.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Tampering
- Component
- Web Framework
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Apache Tomcat improperly accepted HTTP/0.9-style requests using methods other than GET. In affected versions, a security constraint that denied GET access to a URI but allowed HEAD could be bypassed by sending an invalid HTTP/0.9 HEAD request. The impact is limited to authorization bypass for specific Tomcat configurations where method-specific constraints treat HEAD as allowed and GET as denied for the same resource. The flaw can allow unauthorized retrieval behavior equivalent to a GET path authorization bypass in affected deployments, but does not provide code execution, privilege escalation on the host, or service-wide compromise by itself.
Why it matters to the business
Organizations running affected Apache Tomcat versions may unintentionally expose protected web resources if their applications rely on method-specific access controls that deny GET but allow HEAD. The practical risk is narrower than many remote web vulnerabilities because exploitation requires a specific security-constraint configuration and has high attack complexity, reflected by a low CVSS score and low EPSS. However, Tomcat is widely deployed in enterprise Java applications, so teams should still patch during normal vulnerability remediation cycles, especially for internet-facing applications or systems hosting sensitive content.
How an attack unfolds
An attacker first identifies an Apache Tomcat-hosted application and a URI protected by method-specific security constraints. The vulnerable configuration is one where GET requests are denied but HEAD requests are allowed for the same URI. The attacker then crafts a malformed HTTP/0.9-style request using the HEAD method, even though HTTP/0.9 only permits GET by specification. Vulnerable Tomcat versions fail to restrict HTTP/0.9 requests to GET and process the invalid HEAD request in a way that can bypass the intended GET restriction. If the application exposes sensitive or state-relevant content behind that constraint, the attacker may access or influence the protected resource contrary to policy. There is no public exploit maturity indicated and the vulnerability is not listed in CISA KEV, so current exploitation pressure appears low, but targeted probing of unusual HTTP protocol handling is plausible against exposed Tomcat services.
How to fix it
Upgrade Apache Tomcat to a fixed supported release: 11.0.15 or later for the 11.x line, 10.1.50 or later for the 10.1.x line, or 9.0.113 or later for the 9.0.x line. Older end-of-life Tomcat versions are also affected and should be migrated to a supported fixed branch rather than backported ad hoc. Review web.xml and application security constraints for method-specific rules that allow HEAD while denying GET, especially on sensitive URIs; align GET and HEAD authorization unless there is a well-justified business requirement. As a temporary mitigation, block unexpected HTTP/0.9 traffic and malformed method/protocol combinations at a reverse proxy, WAF, load balancer, or ingress controller where possible. Ensure front-end proxies do not normalize or pass through invalid HTTP/0.9 HEAD requests to Tomcat.
How to confirm the fix worked
Confirm installed Tomcat versions are 11.0.15 or later, 10.1.50 or later, or 9.0.113 or later. Verify no unsupported end-of-life Tomcat branches remain in production. Review application security constraints for URI patterns where GET is denied and HEAD is permitted; these are the configurations most relevant to this vulnerability. In a controlled test environment, attempt a normal GET, normal HEAD, and malformed HTTP/0.9-style HEAD request against representative constrained URIs and confirm authorization outcomes are consistent with policy after patching. Check reverse proxy and Tomcat access logs to ensure invalid HTTP/0.9 requests are rejected or handled safely and do not reach protected resources.
Typical attack path
- Identify an internet-facing or reachable application served by Apache Tomcat.
- Fingerprint the Tomcat version or infer it from headers, error pages, behavior, or dependency inventories.
- Probe protected URIs with normal GET and HEAD requests to identify method-specific access-control differences.
- Find a URI where GET is denied but HEAD is allowed by Tomcat security constraints.
- Send a specification-invalid HTTP/0.9-style HEAD request to the protected URI.
- Observe whether the request bypasses the intended GET restriction and returns unauthorized access behavior.
- Repeat against other constrained resources if the application uses similar method-specific authorization rules.
How to detect it
Review Tomcat access logs, reverse proxy logs, WAF logs, and load balancer logs for malformed or unusual HTTP/0.9 requests, especially those using the HEAD method or targeting sensitive/protected URI patterns. Compare responses for denied GET requests versus successful or differently handled HEAD requests to the same path. Focus on requests with protocol strings such as HTTP/0.9, missing protocol fields, unusual request-line parsing, or WAF/proxy parser errors around HEAD. Investigate any 2xx or 3xx responses for HEAD requests to URIs where GET is normally 401, 403, or otherwise blocked by security constraints. If available, correlate with application audit logs for unauthorized access to protected routes, session-less requests, repeated probing of HTTP methods, and source IPs cycling through GET, HEAD, OPTIONS, TRACE, or malformed request formats. No known KEV exploitation or named threat actor activity is indicated for this vulnerability as of the provided data, so detection should focus on protocol anomaly hunting and access-control bypass attempts rather than malware-specific artifacts.
- "HEAD /" "HTTP/0.9"
- "HTTP/0.9"
- "HEAD " "HTTP/0.9"
- "GET " " 403 "
- "HEAD " " 200 "
- "HEAD " " 302 "
- "HEAD " " 401 "
- "OPTIONS "
- "TRACE "
- "Invalid method"
- "Invalid character found in method name"
- "Invalid character found in the HTTP protocol"
- "Error parsing HTTP request header"
- "org.apache.coyote.http11.Http11Processor"
- "Bad request" "HTTP/0.9"
What your security team should do
- Inventory Apache Tomcat instances, including embedded Tomcat in Java applications and appliance-like products.
- Prioritize patching internet-facing Tomcat services and applications that use web.xml security constraints or container-managed authorization.
- Upgrade to Tomcat 11.0.15+, 10.1.50+, or 9.0.113+ depending on the deployed branch.
- Review method-specific access-control rules and remove configurations that allow HEAD while denying GET unless explicitly required.
- Add WAF, reverse proxy, or ingress rules to reject HTTP/0.9 requests and malformed HEAD requests where operationally safe.
- Search historical web access logs for unusual HTTP/0.9 or HEAD requests to protected endpoints.
- Add regression tests for authorization behavior across GET, HEAD, and malformed protocol versions on sensitive routes.
- Track vendor advisories for downstream products that bundle Tomcat and apply their fixed releases when available.
The record
Improper Input Validation vulnerability in Apache Tomcat. Tomcat did not limit HTTP/0.9 requests to the GET method. If a security constraint was configured to allow HEAD requests to a URI but deny GET requests, the user could bypass that constraint on GET requests by sending a (specification invalid) HEAD request using HTTP/0.9. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.14, from 10.1.0-M1 through 10.1.49, from 9.0.0.M1 through 9.0.112. Older, EOL versions are also affected. Users are recommended to upgrade to version 11.0.15 or later, 10.1.50 or later or 9.0.113 or later, which fixes the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 0 | 9.0.112 |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 10.1.0-M1 | 10.1.49 |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 11.0.0-M1 | 11.0.14 |
| Maven | org.apache.tomcat:tomcat | 0 | 9.0.112 |
| Maven | org.apache.tomcat:tomcat | 10.1.0-M1 | 10.1.49 |
| Maven | org.apache.tomcat:tomcat | 11.0.0-M1 | 11.0.14 |
| Maven | org.apache.tomcat:tomcat-catalina | 0 | 9.0.112 |
| Maven | org.apache.tomcat:tomcat-catalina | 10.1.0-M1 | 10.1.49 |
| Maven | org.apache.tomcat:tomcat-catalina | 11.0.0-M1 | 11.0.14 |
| Chainguard | kayenta-2025.0 | 0 | 2025.0.8-r9 |
| Chainguard | kayenta-2025.1 | 0 | 2025.1.6-r7 |
| Chainguard | kayenta-2025.2 | 0 | 2025.2.4-r3 |
| Chainguard | kayenta-2025.4 | 0 | 2025.4.3-r2 |
| Chainguard | kayenta-2026.0 | 0 | 2026.0.2-r2 |
| Chainguard | kayenta-fips-2025.0 | 0 | 2025.0.8-r10 |
| Chainguard | kayenta-fips-2025.1 | 0 | 2025.1.6-r7 |
| Chainguard | kayenta-fips-2025.2 | 0 | 2025.2.4-r3 |
| Chainguard | kayenta-fips-2025.4 | 0 | 2025.4.3-r2 |
| Chainguard | kayenta-fips-2026.0 | 0 | 2026.0.2-r2 |
| Chainguard | nacos | 0 | 3.1.1-r4 |
| Chainguard | nacos-docker | 0 | 3.1.1-r3 |
| Chainguard | thingsboard-tb-mqtt-transport | 0 | 4.3.1-r2 |
| Chainguard | thingsboard-tb-node | 0 | 4.3.1-r2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat11 | 0 | 11.0.18-150600.13.15.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise Server 15 SP6-LTSS | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Server 15 SP6-LTSS | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise Server 15 SP6-LTSS | tomcat11 | 0 | 11.0.18-150600.13.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP6 | tomcat | 0 | 9.0.115-150200.102.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP6 | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP6 | tomcat11 | 0 | 11.0.18-150600.13.15.1 |
| Wolfi | thingsboard-tb-mqtt-transport | 0 | 4.3.1-r2 |
| Wolfi | thingsboard-tb-node | 0 | 4.3.1-r2 |
| openSUSE:Leap 15.6 | tomcat | 0 | 9.0.115-150200.102.1 |
| openSUSE:Leap 15.6 | tomcat10 | 0 | 10.1.52-150200.5.61.1 |
| openSUSE:Leap 15.6 | tomcat11 | 0 | 11.0.18-150600.13.15.1 |
| openSUSE:Leap 16.0 | tomcat | 0 | 9.0.115-160000.1.1 |
| openSUSE:Leap 16.0 | tomcat10 | 0 | 10.1.52-160000.1.1 |
| openSUSE:Leap 16.0 | tomcat11 | 0 | 11.0.18-160000.1.1 |
| openSUSE:Tumbleweed | tomcat | 0 | 9.0.115-1.1 |
| openSUSE:Tumbleweed | tomcat10 | 0 | 10.1.52-1.1 |
| openSUSE:Tumbleweed | tomcat11 | 0 | 11.0.18-1.1 |
Related vulnerabilities
- CVE-2025-66614 Improper Input Validation vulnerability. Also affects org.apache.tomcat.embed:tomcat-embed-core
- GHSA-wmwf-9ccg-fff5 Apache Tomcat Vulnerable to Relative Path Traversal Also affects org.apache.tomcat.embed:tomcat-embed-core
- GHSA-vfww-5hm6-hx2j Apache Tomcat Vulnerable to Improper Neutralization of Escape, Meta, or Control Sequences Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-61795 Improper Resource Shutdown or Release vulnerability in Apache Tomcat. Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-55752 Relative Path Traversal vulnerability in Apache Tomcat. Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-55754 Improper Neutralization of Escape, Meta, or Control Sequences vulnerability in Apache… Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-48989 Improper Resource Shutdown or Release vulnerability in Apache Tomcat made Tomcat… Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-49124 Untrusted Search Path vulnerability in Apache Tomcat installer for Windows. Also affects org.apache.tomcat.embed:tomcat-embed-core