Skip to main content

Apache Struts CVE-2026-73633

| EUVDEUVD-2026-58662 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-08-14 security@apache.org GHSA-335q-cpqh-m68h
7.5
CVSS 3.1 · Vendor: apache
View

Attack ChainAIDerived

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

  1. Access
    Identify Struts JSON endpoint
  2. Delivery
    Craft oversized JSON POST body
  3. Exploit
    Submit request to vulnerable endpoint
  4. Execution
    Plugin reads body unbounded into JVM heap
  5. Persist
    Heap exhaustion triggers OOM
  6. Impact
    Application 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.

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

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

Alert me

AnalysisAIv1 – 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

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

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 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

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-reachable, no credentials needed, single crafted request sufficient; pure availability impact with no confidentiality or integrity exposure.

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:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

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 14, 2026 - 15:22 NVD
7.5 (HIGH)
CVE Published
Aug 14, 2026 - 14:16 cve.org
HIGH 7.5
CVE Published
Aug 14, 2026 - 14:16 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 75% exploitable
Prevalence
High
widely deployed Java MVC framework across enterprise Java applications
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.3%
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

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