Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Struts JSON endpoint
-
DeliverySubmit high-volume concurrent JSON requests
-
ExploitTrigger unsynchronized parsing state collision
-
ExecutionObserve cross-request data disclosure
-
ImpactPotentially bypass configured parsing limits
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Unsynchronized access to shared data
|
| Exploitation Conditions | Exploitation requires that the target Apache Struts 7.2.1 application has explicitly enabled the JSON plugin AND configured it to populate action objects from JSON request bodies - this is not the default Struts configuration. The CVSS vector (PR:L) confirms that at minimum low-privilege authentication is required; unauthenticated exploitation is not supported by available data. Successful data leakage further depends on concurrent request timing: another user's request must be in-flight and in a parsing phase simultaneously, meaning the application must be under moderate-to-high concurrency for the race condition to be practically triggerable. Exploitation is strictly version-specific to Struts 7.2.1. Applications using the JSON plugin only for non-sensitive data flows face negligible practical impact even if technically vulnerable. |
| Impact | The vendor-assigned CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) reflects a network-reachable, low-privilege-required flaw with limited confidentiality impact and no integrity or availability consequence. EPSS at 0.15% (4th percentile) strongly corroborates low active exploitation interest. The vulnerability is absent from the CISA KEV catalog and no public exploit code has been reported, aligning with a 'no public exploit identified at time of analysis' posture. The non-default nature of the JSON plugin is a meaningful real-world limiter: only applications that have deliberately enabled JSON-based action population are in scope, materially reducing the exposed population. The AC:L CVSS metric may slightly overstate attacker ease given the concurrent timing dependency - practical exploitation likely requires the target application to be under sufficient concurrent load to trigger state collision. Overall, this is a genuine but low-priority finding: unless the application handles sensitive per-user data via JSON endpoints and is known to have the plugin enabled, it does not warrant emergency response. |
| Exploit ScenarioDerived | An authenticated attacker with low-privilege access sends a high volume of concurrent JSON requests to a Struts 7.2.1 application with the JSON plugin enabled, timing them to collide during the shared parsing phase. Due to unsynchronized parsing state, the attacker's response may contain data fragments from a concurrent legitimate user's request, exposing sensitive fields such as form input or session-bound parameters. No public exploit code is known at time of analysis, and reliable triggering requires sustained concurrent load on the target endpoint. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Cross-request data exposure in the Apache Struts JSON plugin (version 7.2.1) results from per-request parsing state being improperly shared across concurrent requests, enabling information observable in one user's session to leak into another's. Authenticated remote attackers targeting applications that have explicitly enabled JSON action population can exploit this concurrency flaw (CWE-567) to read partial request data or circumvent configured parsing limits. With an EPSS of 0.15% (4th percentile), no CISA KEV listing, and no public exploit identified at time of analysis, real-world risk is low and narrowed further by the non-default plugin requirement.
RemediationAI
Upgrade Apache Struts to version 7.3.0, the vendor-confirmed fix release documented in advisory S2-070 at https://cwiki.apache.org/confluence/display/WW/S2-070. If immediate upgrade is not operationally feasible, the vendor explicitly states that applications not using the JSON plugin for action population are not affected - disabling or removing the JSON plugin is an effective compensating control, though it will break any functionality relying on JSON request body deserialization into action objects. Restricting access to JSON endpoints to authenticated, trusted internal clients via network-layer controls (firewall rules, reverse-proxy ACLs) reduces the pool of potential requesters but does not eliminate the race condition itself. No other workarounds are documented in available references.
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
CWE-567 (Unsynchronized Access to Shared Data in a Multithreaded Context) describes the root cause: the JSON plugin's per-request parsing state - likely a shared parser instance or stateful configuration object - is not properly thread-isolated, creating a race window during concurrent request handling. The Apache Struts JSON plugin is an optional component that enables the framework to populate action objects directly from a JSON request body; it is not active by default. The flaw means that under concurrent load, a parser state snapshot from request A can become visible to request B, potentially surfacing request-scoped data across session boundaries and allowing security-oriented parsing limits (e.g., depth caps, field-count maximums) to go unenforced. The affected CPE is Apache Struts 7.2.1 as confirmed by EUVD-2026-59605 and the vendor advisory S2-070.
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:L/UI:N/S:U/C:L/I:N/A:N
AC:H reflects the non-default JSON plugin prerequisite and concurrent timing dependency; PR:L confirmed by vendor CVSS; no integrity or availability impact.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
3DescriptionCVE.org
Exposure of data element to wrong session vulnerability in the JSON plugin of Apache Struts. Per-request parsing state could be shared across concurrent requests, allowing data associated with one request to become observable in another, and configured parsing limits not to be enforced as intended. Populating actions from a JSON request body is not enabled by default; applications that do not use the JSON plugin are not affected.
This issue affects Apache Struts: 7.2.1.
Users are recommended to upgrade to version 7.3.0, which fixes the issue.
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.
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-59605
GHSA-gvf6-rf7m-9h3g
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB