TomcatWeb server / proxy · Apache

CVE-2025-31650

HIGH · 7.5 CVSS v3.1 Published 2025-04-28
Fix available
A fix is available. Upgrade to 9.0.104 / 10.1.40 or later.
See remediation →
84/100
Remediation priority · High
High EPSS Remotely reachable No privileges Zero-click

Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.

NVD · unedited
Improper Input Validation vulnerability in Apache Tomcat. Incorrect error handling for some invalid HTTP priority headers resulted in incomplete clean-up of the failed request which created a memory leak. A large number of such requests could trigger an OutOfMemoryException resulting in a denial of service. This issue affects Apache Tomcat: from 9.0.76 through 9.0.102, from 10.1.10 through 10.1.39, from 11.0.0-M2 through 11.0.5. The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.90 though 8.5.100. Users are recommended to upgrade to version 9.0.104, 10.1.40 or 11.0.6 which fix the issue.

Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.

dbcve analysis · high confidence

Apache Tomcat contains an improper input validation vulnerability in HTTP priority header parsing. When invalid priority headers are received, incorrect error handling fails to properly clean up the request resources, causing a memory leak. Attackers can exploit this by sending large numbers of malformed requests to exhaust memory and trigger an OutOfMemoryException (DoS).

MitigationUpgrade Apache Tomcat to version 9.0.104, 10.1.40, or 11.0.6 (or 8.5.101+ if using 8.5) to patch the memory leak. For unpatched versions, consider rate-limiting or filtering invalid HTTP headers at a load balancer or WAF as a temporary workaround.

Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.

Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.

NVD · CPE data
TomcatWeb server / proxy
Affected:>= 9.0.76, < 9.0.104>= 10.1.10, < 10.1.40>= 11.0.1, < 11.0.6= 11.0.0

CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.

From the vector
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.

dbcve checks

Work through these to decide whether this CVE applies to you.

  1. Identify installed Apache Tomcat version
    Check the version.sh script or the ServerInfo.properties file in the Tomcat lib directory, or look at the server startup banner for the exact version number
    Affected if The version falls within >= 9.0.76 and < 9.0.104, >= 10.1.10 and < 10.1.40, >= 11.0.1 and < 11.0.6, or equals 11.0.0
  2. Determine if HTTP/2 connector is enabled
    Examine the server.xml configuration file for any Connector elements with protocol="HTTP/1.1" that have upgrade protocols enabled, or check for explicit HTTP/2 connector configurations
    Affected if HTTP/2 is enabled and accepting connections, as the priority header vulnerability exists in HTTP/2 request processing
  3. Check for prior OutOfMemoryException errors
    Search Tomcat log files (catalina.out, localhost.log, or files in the logs directory) for OutOfMemoryException or java.lang.OutOfMemoryError entries occurring after periods of high request traffic
    Affected if OutOfMemoryError exceptions appear in logs, especially accompanied by messages about heap space exhaustion
  4. Monitor current heap memory usage
    Use JMX, jstat, or the Tomcat manager application to observe current heap memory consumption, particularly the used versus max heap sizes
    Affected if Heap memory usage is abnormally high or continuously growing without typical GC patterns

You are affected if your Tomcat version is within the vulnerable ranges AND HTTP/2 connectors are enabled, with potential indicators being OutOfMemoryError exceptions in logs or abnormally high heap memory consumption.

Generated from the published advisory. Verify against your own configuration.

Check your environment

Paste your version and any relevant configuration and it will be compared against the affected criteria above. Do not include secrets or credentials.

AI-assisted, checked against the advisory. Informational, not a guarantee.

Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.

dbcve · scoped
Upgrade available Upgrade to 9.0.104 / 10.1.40 / 11.0.6 or later
Fixed in 9.0.10410.1.4011.0.6
Interim mitigation

Upgrade Apache Tomcat to version 9.0.104, 10.1.40, or 11.0.6 (or 8.5.101+ if using 8.5) to patch the memory leak. For unpatched versions, consider rate-limiting or filtering invalid HTTP headers at a load balancer or WAF as a temporary workaround.

Recommended fix High confidence

9.0.104 for Tomcat 9.x, 10.1.40 for Tomcat 10.1.x, or 11.0.6 for Tomcat 11.x

  1. Identify the currently installed Tomcat version (e.g., check CATALINA_HOME or version.sh)
  2. Determine the major version line (9.x, 10.1.x, or 11.x) in use
  3. Stop the Tomcat service or instance
  4. Backup the existing Tomcat installation directory, configuration files, and deployed applications
  5. Download the appropriate fixed version: 9.0.104 for 9.x line, 10.1.40 for 10.1.x line, or 11.0.6 for 11.x line from a trusted mirror (e.g., tomcat.apache.org)
  6. Extract the new Tomcat version to a staging location
  7. Review the new version's release notes for any breaking changes or required configuration updates
  8. Migrate custom configurations (server.xml, context.xml, etc.) from the old installation to the new one
Caveat Review release notes between current and target version for any breaking changes; minor version upgrades typically preserve API compatibility but configuration adjustments may be needed

Generated from the published advisory — verify against the referenced sources before acting.

Fix this in Tomcat Scoped from the published advisory
  • Consultation3.0 h
  • Implementation8.0 h
  • Testing6.0 h
  • Review / QA3.0 h
20.0 hours of engineering $3,480
Get the upgrade done

An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $5,568.

Scan for this in your stack

Free · runs locally
dbcve dependency scanner

Check whether your project pulls in CVE-2025-31650 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.

References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.

Primary sources

Practitioner notes

Contributed

Peer-ranked notes from engineers who’ve handled CVE-2025-31650 in production — separate from our analysis above.

No notes yet

Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.

What this is

A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.

What belongs here
  • Verified mitigations, workarounds, and config changes
  • Version or environment caveats, and links to real fixes
  • No weaponised exploit code, or anything meant to cause harm
  • No spam, self-promotion, credentials, or personal data