Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOpen keep-alive connection to Tomcat
-
DeliveryTrigger large non-blocking write response
-
ExploitBuffer under-read splits response body
-
ExecutionSubsequent request reads leaked data
-
ImpactCross-response data disclosure
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Exploitation requires the affected Tomcat deploying an application that performs large non-blocking (NIO) writes, combined with HTTP connection reuse (keep-alive) so that a subsequent request is received on the same connection while the oversized write is in progress; only then can the response body be split across requests. Limiting factors: the outcome is non-deterministic (the advisory states the second request will 'most likely' fail and data leakage is only 'possibly' achievable), so an attacker cannot reliably control which or how much first-response data leaks; applications that do not use large non-blocking writes are not meaningfully exposed. Affected only in 11.0.0-M25 through 11.0.26; upgrading to 11.0.27 removes the condition. |
| Impact | The input provides a CVSS 3.1 vector of CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H (9.1 Critical), indicating a remote, unauthenticated, network-reachable flaw with high confidentiality and availability impact. No EPSS score, no KEV listing, and no POC were provided, so exploitation signals rely entirely on the vendor advisory. The description's own hedging language ('most likely' failure of the second request, 'possibly' leakage of data) argues the real-world attack complexity is higher than the AC:L in the supplied vector suggests: triggering the response-body split requires a specific runtime condition (a large non-blocking write) plus connection reuse so that a second request lands on the same connection - this is closer to a non-deterministic race than a clean, repeatable network exploit. The confidentiality impact is also probabilistic (cross-response data leakage is possible, not guaranteed), so the practical exploitability is lower than the headline 9.1 implies. Net assessment: a genuine, patch-worthy issue in a ubiquitous server, but given no evidence of active exploitation or public exploit code and the condition-dependent trigger, this is a prompt-patch priority rather than an emergency 'drop everything' zero-day. Note the discrepancy: vendor-rated AC:L versus a description that describes condition-dependent, probabilistic behavior - this analysis assesses AC:H (see assessed vector). |
| Exploit ScenarioDerived | An attacker sends sequential HTTP requests over a keep-alive connection to a Tomcat instance whose application performs large non-blocking writes; the buffer under-read causes part of one user's response body to spill into the handling of the next request on that connection, corrupting the second request and potentially leaking bytes of the first response to a different request. No public exploit code was identified, and reliable exploitation depends on timing and the application's non-blocking write pattern rather than a deterministic single-shot request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 20, 2026
Apache Tomcat 11.0.0-M25 through 11.0.26 can split the body of a large non-blocking (NIO) response across the current request and the next request received on the same reused keep-alive connection, most likely causing the second request to fail and potentially leaking fragments of the first response to a different client. Remote, unauthenticated attackers can trigger the condition (CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H, 9.1 as published; our assessment raises attack complexity to High because the target must both perform large non-blocking writes and reuse the connection, and the corruption outcome is non-deterministic), so reliable attacker control over which or how much data leaks is not established. No public exploit code and no CISA KEV entry were identified at time of analysis, and 11.0.27 resolves the flaw.
Earlier versions of this analysis (1)
Apache Tomcat 11.0.0-M25 through 11.0.26 can mis-split a large non-blocking (async/NIO) response body so that trailing bytes are delivered to the next request arriving on the same reused keep-alive connection, typically causing the second request to fail and potentially disclosing fragments of the first response. The flaw is remotely reachable without authentication (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L), but exploitation is constrained: the hosted application must perform a large non-blocking write and HTTP connection reuse must occur, and Apache notes the most likely outcome is failure of the second request rather than reliable cross-response disclosure. There is no CISA KEV entry and no public exploit identified at time of analysis; only the 11.0.0-M25 through 11.0.26 range is affected, with 11.0.27 and other release branches unaffected.
RemediationAI
Vendor-released patch: upgrade to Apache Tomcat 11.0.27, which fixes the issue (advisory https://lists.apache.org/thread.html/sk2cg4k077fwcqbm6tqz2n700nq06h80). Where upgrading cannot be done immediately, the most direct compensating control is to eliminate connection reuse on the affected connector, for example by setting maxKeepAliveRequests="1" or otherwise disabling HTTP keep-alive; this forces a fresh connection per request and prevents residual bytes from a prior response reaching a second client, at the cost of per-request TCP/TLS handshake overhead and reduced throughput. A second option is to avoid the vulnerable code path by ensuring applications do not perform oversized non-blocking writes (for example by chunking output or using blocking I/O for large responses), which is application-specific and hard to guarantee across a shared Tomcat instance. Placing a reverse proxy in front of Tomcat that strips or rejects malformed responses and caps response sizes can reduce cross-request leakage but does not fix the underlying connector and adds latency and operational complexity. After patching, verify the running version and retest large NIO write scenarios under keep-alive load.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is a buffer under-read (CWE-127): a length or index is used to read past the valid start of a buffer, so the code consumes bytes it should not. In Tomcat's NIO (non-blocking) HTTP connector, response bodies are written through pooled byte buffers and flushed asynchronously to the socket; when a write is large enough to be only partially flushed, residual bytes can remain queued against the connection rather than the request. Because HTTP keep-alive treats the connection as a reusable channel, the leftover bytes are then emitted at the head of the next response written on that connection, effectively shifting the framing boundary between request N and request N+1. The second request typically fails (corrupt status/header stream or premature close), and data from the first response can appear in the second client's stream. Applications that do not issue large non-blocking writes, or deployments that do not reuse connections, do not exercise the faulty path. The flaw is confined to the 11.0.x milestone/release line from 11.0.0-M25 through 11.0.26; earlier 11.0.x builds and the 10.1.x/9.0.x lines are outside the stated affected range.
Know when Apache Tomcat gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Network-reachable and unauthenticated (AV:N/PR:N/UI:N), but AC:H because the split depends on a large non-blocking write plus timed connection reuse and is non-deterministic; confidentiality leak and request failure give C:H/A:H.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
3DescriptionCVE.org
Buffer under-read vulnerability in Apache Tomcat meant that a large non-blocking write could result in the response body being split between the current request and the next request received on that connection leading most likely to failure of the second request and possibly leakage of data from the first response to the second.
This issue affects Apache Tomcat: from 11.0.0-M25 through 11.0.26.
Users are recommended to upgrade to version 11.0.27, which fixes the issue.
Articles & Coverage 2
Executive ViewAI
A defect in Apache Tomcat 11.0.0-M25 through 11.0.26 can cause part of one user's response to be delivered to a different user, and cause the affected request to fail, on Java applications that write large responses over reused keep-alive connections. Any internet-facing or multi-tenant service running an affected build is potentially exposed without authentication, and because the corruption is intermittent there may be no reliable log evidence that a disclosure occurred. Leadership should care because the plausible worst case is silent cross-customer data exposure occurring alongside unplanned request failures in production.
Apply vendor patch (upgrade to 11.0.27). Where upgrade is not yet possible, disable or limit HTTP keep-alive reuse (e.g., maxKeepAliveRequests=1), cap large non-blocking response sizes, and front affected instances with a proxy that does not reuse backend connections.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Apache Tomcat
View allMissing encryption of cluster replication traffic in Apache Tomcat 11.0.20, 10.1.53, and 9.0.116 exposes sensitive sessi
Padding oracle attack in Apache Tomcat EncryptInterceptor leaks encrypted session data confidentiality across versions 7
Reflected XSS in Apache Tomcat's bundled 'number guess' example application exposes users of that demo page to script in
Authentication bypass in Apache Tomcat allows unauthenticated remote attackers to reach WebSocket endpoints that are sup
Authentication bypass in Apache Tomcat's DIGEST authentication implementation allows remote attackers to circumvent HTTP
Improper input validation in Apache Tomcat (CWE-20) affects a broad range of releases across the 8.5, 9.0, 10.0, 10.1, a
Authentication bypass in Apache Tomcat 9.x through 11.x and Tomcat Native 1.1.23-2.0.13 allows unauthenticated remote at
Authorization bypass in Apache Tomcat (versions 7.0.0-7.0.109, 8.5.0-8.5.100, 9.0.0.M1-9.0.117, 10.1.0-M1-10.1.54, and 1
Apache Tomcat 11.0.22-11.0.26, 10.1.55-10.1.60, and 9.0.118-9.0.122 contain an object-recycling race in HTTP/2 processin
Authentication bypass in Apache Tomcat's JNDI realm allows unauthenticated remote attackers to log in without a valid pa
HTTP/2 request smuggling in Apache Tomcat can mix up request headers between concurrent streams, allowing unauthenticate
Information disclosure in Apache Tomcat's LockOutRealm component allows remote attackers to bypass account-lockout track
EUVD-2026-105012
GHSA-64hx-4gc9-f6v4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB