Skip to main content

Apache Struts CVE-2026-73635

| EUVDEUVD-2026-59604 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-15 security@apache.org GHSA-prrh-5r25-ch75
7.5
CVSS 3.1 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send HTTP requests with synthesized unique locale values
  2. Delivery
    Framework resolves locale from request (no fixed locale configured)
  3. Exploit
    New cache entry allocated per unique locale
  4. Execution
    Heap consumption grows without eviction bound
  5. Persist
    JVM OutOfMemoryError triggers
  6. Impact
    Application unavailable to legitimate users

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The application must NOT have a fixed locale explicitly configured - that is, the struts.locale property must be absent or unset in struts.xml or struts.properties, leaving locale resolution to per-request data. This is the sole required condition and eliminates all affected versions where fixed-locale configuration is in place. Limiting factors: the vulnerability affects only the locale-cache code path, so applications configured with struts.locale are completely immune regardless of version; exploitation requires sustained request volume sufficient to exhaust heap before the application or container enforces memory limits; the JVM heap size and garbage collection policy influence how quickly exhaustion occurs. Authentication is not required (PR:N). The vulnerability is not exploitable on affected versions that have configured a fixed locale.

Impact

The CVSS 3.1 score of 7.5 with vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H correctly reflects a remotely exploitable, unauthenticated DoS - the highest-risk profile for availability impact. However, the real-world risk is modulated by the critical deployment condition: only applications without a fixed locale configured are vulnerable. EPSS at 0.19% (9th percentile) is low, indicating that exploitation has not been widely observed in the wild, and the vulnerability is not listed in the CISA KEV catalog. There is no reported POC. The impact is limited to availability - confidentiality and integrity are unaffected, limiting the blast radius compared to RCE vulnerabilities of similar CVSS score. For organizations running Apache Struts without explicit locale configuration and with internet-facing endpoints, this is a genuine priority given the ease of triggering the condition (simple HTTP requests). For those with fixed-locale deployments, risk is negligible. The conflict between high CVSS and low EPSS is consistent with a DoS class vulnerability: technically easy to exploit but less operationally useful to attackers than RCE.

Exploit ScenarioDerived

An attacker targeting an internet-facing Apache Struts application without fixed locale configuration sends a flood of HTTP GET or POST requests, each specifying a distinct synthetic locale value (e.g., xx-YY, zz-WW) in the Accept-Language header or locale request parameter. Each unique value causes Struts to allocate and cache a new localized-text lookup entry. With no eviction or size limit, the cache grows until the JVM heap is exhausted, at which point the application throws OutOfMemoryError, rendering it unavailable to legitimate users. No authentication or application-specific knowledge is required beyond knowledge of the locale parameter path.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 17, 2026

Unbounded locale cache growth in Apache Struts allows unauthenticated remote attackers to exhaust JVM heap memory and deny service to all users of the application. The vulnerability spans an exceptionally wide version range - from 2.0.0 through 7.2.1 across four release branches - and is exploitable only when no fixed locale is configured, a condition common in multilingual deployments. No public exploit has been identified at time of analysis, and EPSS at 0.19% (9th percentile) reflects low observed exploitation activity; however, the network vector with zero prerequisites on vulnerable configurations makes this a meaningful DoS risk in exposed environments.

RemediationAI

Upgrade to Apache Struts 6.11.0 or 7.3.0, the vendor-confirmed fixed releases per the Apache security advisory S2-074 at https://cwiki.apache.org/confluence/display/WW/S2-074. Note that the 2.x branch (2.3.37 and 2.5.33) does not appear to have a corresponding fix release - organizations running the 2.x branch should migrate to the 6.x or 7.x line. For deployments that cannot immediately upgrade, the complete and effective workaround is to configure a fixed locale in the application's struts.xml or struts.properties via the struts.locale property (e.g., struts.locale=en_US). This eliminates the attack vector entirely because the cache is populated only once with the fixed locale rather than dynamically per request. The trade-off is loss of dynamic locale selection, which impacts multilingual user experiences; evaluate against operational requirements before applying. Rate-limiting or WAF rules targeting unusual Accept-Language header diversity may provide partial mitigation but are not a substitute for patching.

Affected VersionsENISA

Apache Struts 7.0.0 ≤7.2.1
Apache Struts 2.0.0 ≤2.3.37
Apache Struts 2.5.0 ≤2.5.33
Apache Struts 6.0.0 ≤6.10.0

Affected Packages

euvd apache_struts no fix

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

Apache Struts is a widely-used Java MVC framework that maintains internal caches for localized text lookups (i18n/l10n message bundles). When locale resolution is delegated to the incoming HTTP request - typically via the Accept-Language header or a request parameter - the framework creates and stores a new cache entry for each unique locale value encountered. CWE-770 (Allocation of Resources Without Limits or Throttling) describes this root cause precisely: there is no upper bound on the number of distinct cache entries, no eviction policy, and no rate limit on cache population. An attacker can drive this cache to consume all available JVM heap, triggering OutOfMemoryError and crashing or stalling the application server. Affected CPEs span Apache Struts 2.0.0-2.3.37, 2.5.0-2.5.33, 6.0.0-6.10.0, and 7.0.0-7.2.1.

Know when Struts 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

Vendor (apache) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Network-delivered DoS via locale-manipulated HTTP requests; no authentication or complexity beyond sustained request volume; impact confined to availability with no confidentiality or integrity loss.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 7.5 HIGH

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

3
CVSS changed
Aug 17, 2026 - 13:22 NVD
7.5 (HIGH)
CVE Published
Aug 15, 2026 - 11:16 cve.org
HIGH 7.5
CVE Published
Aug 15, 2026 - 11:16 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Allocation of resources without limits or throttling vulnerability in Apache Struts. When no fixed locale is configured, the locale used for localized-text lookups is taken from the incoming request, allowing an unauthenticated remote client to cause the framework's internal localized-text caches to grow without bound and exhaust the Java heap, denying service to other users. Applications that configure a fixed locale are not affected.

This issue affects Apache Struts: from 2.0.0 through 2.3.37, from 2.5.0 through 2.5.33, from 6.0.0 through 6.10.0, from 7.0.0 through 7.2.1.

Users are recommended to upgrade to version 6.11.0 or 7.3.0, which fixes the issue.

Executive ViewAI

Why It Matters

Apache Struts versions 2.0.0 through 7.2.1 are vulnerable to denial-of-service attacks affecting any organization with multilingual web applications, creating immediate application downtime risk. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis; remediation requires architectural changes rather than straightforward updates. The affected version range is exceptionally broad, meaning the majority of active Struts deployments require urgent mitigation action.

Business Impact: High
Compensating Controls

Disable dynamic locale negotiation by configuring a fixed locale; restrict network access to vulnerable systems via firewall rules or network segmentation; implement HTTP rate limiting on requests containing locale parameters; deploy JVM heap utilization monitoring with alerting; maintain detailed security audit logs to support incident investigation and forensics if DoS occurs.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
High
dominant Java MVC framework in large-scale enterprise web applications
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Struts

View all
CVE-2016-3081 HIGH POC
8.1 Apr 26

Apache Struts 2.3.19 to 2.3.20.2, 2.3.21 to 2.3.24.1, and 2.3.25 to 2.3.28, when Dynamic Method Invocation is enabled, a

CVE-2013-2251 CRITICAL POC
9.8 Jul 20

Apache Struts 2.0.0 through 2.3.15 allows remote attackers to execute arbitrary OGNL expressions via a parameter with a

CVE-2017-5638 CRITICAL POC
9.8 Mar 11

The Jakarta Multipart parser in Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 2.5.10.1 has incorrect exception ha

CVE-2017-9805 HIGH POC
8.1 Sep 15

The REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with a

CVE-2013-1966 CRITICAL POC
9.3 Jul 10

Apache Struts 2 before 2.3.14.2 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not

CVE-2016-3087 CRITICAL POC
9.8 Jun 07

Apache Struts 2.3.19 to 2.3.20.2, 2.3.21 to 2.3.24.1, and 2.3.25 to 2.3.28, when Dynamic Method Invocation is enabled, a

CVE-2014-0114 HIGH POC
7.5 Apr 30

Apache Commons BeanUtils, as distributed in lib/commons-beanutils-1.8.0.jar in Apache Struts 1.x through 1.3.10 and in o

CVE-2014-0112 HIGH POC
7.5 Apr 29

ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which all

CVE-2017-12611 CRITICAL POC
9.8 Sep 20

In Apache Struts 2.0.0 through 2.3.33 and 2.5 through 2.5.10.1, using an unintentional expression in a Freemarker tag in

CVE-2013-2115 HIGH POC
8.1 Jul 10

Apache Struts 2 before 2.3.14.2 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not

CVE-2012-0394 MEDIUM POC
6.8 Jan 08

The DebuggingInterceptor component in Apache Struts before 2.3.1.1, when developer mode is used, allows remote attackers

CVE-2013-1965 CRITICAL POC
9.3 Jul 10

Apache Struts Showcase App 2.0.0 through 2.3.13, as used in Struts 2 before 2.3.14.3, allows remote attackers to execute

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy