Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Struts JSON endpoint
-
DeliveryCraft oversized JSON POST body
-
ExploitSubmit request to vulnerable endpoint
-
ExecutionPlugin reads body unbounded into JVM heap
-
PersistHeap exhaustion triggers OOM
-
ImpactApplication denies service to all users
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption 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 | Two specific conditions must both be met: (1) the Apache Struts JSON plugin must be included as a dependency in the application - it is an optional component and is not present in all Struts deployments; and (2) the application must be explicitly configured to populate action objects from a JSON request body (the feature that triggers the unbounded read). Applications using the JSON plugin only for other purposes (e.g., JSON result rendering) without enabling request-body-to-action mapping are not affected. What limits exploitation: non-default configuration requirement (the JSON request-body feature must be deliberately enabled), no cross-application scope change, and availability-only impact. What does NOT limit exploitation: no authentication is required per CVSS PR:N, attack complexity is low, and SSVC rates the attack as automatable, meaning no specialized tooling is needed beyond crafting a large HTTP POST body. |
| Impact | The NVD CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) scores 7.5 (High), reflecting a straightforward, unauthenticated network attack with no complexity requirements. However, the real-world exposure is narrowed by an important deployment condition: only applications that explicitly use the JSON plugin and enable request-body population are vulnerable - the plugin is optional and disabled by default in many deployments. SSVC rates exploitation as 'none' with 'automatable: yes' and 'technical impact: partial', meaning while no active campaigns are observed, an attacker could trivially automate requests against exposed endpoints. No EPSS data was provided in the input; absent that signal, the automatable SSVC rating and absence from CISA KEV together suggest elevated theoretical risk but no confirmed active exploitation pressure at this time. Impact is availability-only - there is no confidentiality or integrity exposure - limiting the blast radius to service disruption rather than data compromise or lateral movement. |
| Exploit ScenarioDerived | An attacker identifies a publicly accessible Apache Struts endpoint that processes JSON request bodies - discoverable via fingerprinting or by probing for characteristic Struts URL patterns. The attacker sends a single HTTP POST request containing an extremely large JSON payload; the JSON plugin reads the entire body into JVM heap memory before any length check applies. Repeated requests, or a single sufficiently large payload, exhaust available heap space, triggering OutOfMemoryError conditions and rendering the application unavailable to legitimate users. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 14, 2026
Heap exhaustion via unbounded JSON body reading in the Apache Struts JSON plugin allows unauthenticated remote attackers to deny service by sending a single oversized HTTP request to any endpoint where request-body-to-action population is enabled. Affected version ranges span the 2.x, 6.x, and 7.x release lines. No public exploit code has been identified at time of analysis and SSVC signals no active exploitation, but the attack is rated automatable, meaning scripted large-scale scanning and denial-of-service campaigns are feasible against exposed endpoints.
RemediationAI
Upgrade Apache Struts to version 6.11.0 (for 6.x deployments) or 7.3.0 (for 7.x deployments), which fix the unbounded read. For 2.x branches (2.1.8-2.3.37 and 2.5.0-2.5.33), no fix version within those branches is indicated - organizations should migrate to a supported 6.x or 7.x release. Consult the Apache advisory at https://cwiki.apache.org/confluence/display/WW/S2-072 for authoritative guidance. Where immediate upgrade is not feasible, the most direct compensating control is to disable the JSON plugin entirely if JSON request-body handling is not required by the application; removing the plugin JAR from the classpath eliminates the attack surface with no side effects on non-JSON functionality. As a network-layer mitigation, configure the upstream web server, reverse proxy, or WAF to enforce a strict maximum request body size on affected endpoints - note that Struts' own JSON length limit does not bound the vulnerable read, so this control must be applied externally. Restricting access to JSON-enabled endpoints to trusted IP ranges further reduces exposure.
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
Apache Struts is a Java MVC web framework. Its optional JSON plugin (CWE-400: Uncontrolled Resource Consumption) supports deserializing HTTP request bodies into action objects. The root cause is that when this feature is enabled, the plugin streams the full raw request body into JVM heap memory with no upper bound enforced before processing. Critically, the plugin's own configurable JSON input length limit - a setting that developers might assume provides protection - does not bound this initial read operation, creating a false sense of security for configured deployments. The vulnerability spans CPE ranges covering Struts 2.1.8 through 2.3.37, 2.5.0 through 2.5.33, 6.0.0 through 6.10.0, and 7.0.0 through 7.2.1, per ENISA EUVD-2026-58662 and the Apache S2-072 advisory.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Network-reachable, no credentials needed, single crafted request sufficient; pure availability impact with no confidentiality or integrity exposure.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
3DescriptionCVE.org
Uncontrolled resource consumption vulnerability in the JSON plugin of Apache Struts. When an application is configured to populate actions from a JSON request body, the plugin reads that body into memory without bounding how much it will accept, so a single request can exhaust the heap and deny service to other users. The plugin's configurable JSON input length limit does not bound this read. The JSON plugin is an optional component; applications that do not use it, or use it without enabling JSON request-body handling, are not affected.
This issue affects Apache Struts: from 2.1.8 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
A high-severity denial-of-service vulnerability in Apache Struts' JSON plugin (CVE-2026-73633) allows unauthenticated attackers to crash exposed web services by sending oversized HTTP requests. Organizations running Struts 2.x, 6.x, or 7.x with request-body-to-action enabled face immediate risk of service disruption, with no vendor patch currently available, making interim defensive measures critical.
Implement request size limits at the Web Application Firewall and reverse proxy layers (e.g., nginx body_size_limit, Apache LimitRequestBody). Deploy rate limiting rules to block rapid successive requests from a single source. At the application layer, configure max JSON payload sizes well below heap capacity. Disable request-body-to-action population where not required. Network segmentation to restrict direct exposure of Struts endpoints to trusted internal networks only. Monitor application logs for abnormal request patterns and configure alerting for spike detection.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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
Apache Struts 2.0.0 through 2.3.15 allows remote attackers to execute arbitrary OGNL expressions via a parameter with a
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
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
Apache Struts 2 before 2.3.14.2 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not
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
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
ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which all
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
Apache Struts 2 before 2.3.14.2 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not
The DebuggingInterceptor component in Apache Struts before 2.3.1.1, when developer mode is used, allows remote attackers
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
EUVD-2026-58662
GHSA-335q-cpqh-m68h
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB