Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege credentials
-
DeliveryIdentify SMD/JSON-RPC endpoint on target application
-
ExploitSend high-volume concurrent JSON-RPC requests
-
ExecutionRace per-response serialization context across threads
-
ImpactRead response content belonging to another user's request
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Unsynchronized access to shared data
|
| Exploitation Conditions | The SMD/JSON-RPC handling mode of the Apache Struts JSON interceptor must be explicitly enabled in the application's struts.xml or equivalent configuration - this mode is not active by default. Applications using only the json result type are categorically not affected and require no remediation. Exploitation further requires that the attacker holds a valid low-privilege authenticated session (CVSS PR:L), ruling out unauthenticated attackers. Concurrent request load is necessary to trigger the state-sharing condition, meaning the attack is less reliable against lightly loaded applications where request overlap is infrequent. The impact is limited to confidentiality of response content - no integrity modification or availability disruption is possible through this vector. |
| Impact | The overall risk profile is moderate-to-low despite the network-accessible attack vector. CVSS 3.1 scores this at 4.3 (Medium) with AV:N/AC:L/PR:L/UI:N/S:U/C:L - confirming a low-privilege authenticated vector with limited confidentiality impact and no integrity or availability consequence. The EPSS score of 0.15% at the 4th percentile indicates this vulnerability is statistically unlikely to see opportunistic exploitation in the near term. No KEV listing exists, and no public exploit code has been identified, further reducing urgency. The single most important risk-limiting factor is that the vulnerable code path - SMD/JSON-RPC handling in the JSON interceptor - is not enabled by default, meaning the vast majority of Struts deployments are not exposed. The gap between the CVSS score and EPSS is consistent with a non-default configuration dependency that sharply narrows the exploitable population. Even a mid-sized municipal IT team in leszno running a Struts-based internal application should first verify whether the SMD/JSON-RPC interceptor is actually active before treating this as an emergency - for most deployments, it will not be. Priority should be assigned to environments that have explicitly enabled SMD/JSON-RPC functionality, particularly those handling sensitive per-user data in concurrent-request scenarios. |
| Exploit ScenarioDerived | An authenticated low-privilege user sends a high volume of concurrent JSON-RPC requests to a Struts 7.2.1 application with the SMD/JSON-RPC interceptor enabled, exploiting the unsynchronized serialization state to observe fragments of response content generated for another user's simultaneous request - potentially including sensitive field values serialized as part of that user's JSON response. No public exploit code has been identified at time of analysis, so successful exploitation currently depends on manual implementation of the concurrent-request timing technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Cross-request data leakage in Apache Struts 7.2.1's JSON plugin allows an authenticated remote attacker to observe response content associated with a concurrent request belonging to a different user. The root cause is a thread-safety defect (CWE-567) in the SMD/JSON-RPC interceptor, where per-response serialization state is not isolated between concurrent requests. Exploitation is constrained to the non-default SMD/JSON-RPC mode of the JSON interceptor; no public exploit code has been identified at time of analysis, and the EPSS score of 0.15% (4th percentile) reflects the limited realistic exploitation surface.
RemediationAI
The primary and recommended fix is to upgrade Apache Struts to version 7.3.0, which resolves the serialization state isolation defect. The vendor advisory is published at https://cwiki.apache.org/confluence/display/WW/S2-071. For organizations that cannot immediately upgrade, a viable compensating control is to disable the SMD/JSON-RPC interceptor entirely if it is not actively required by the application - this eliminates the vulnerable code path without affecting the standard json result type functionality. If SMD/JSON-RPC is needed, restricting access to the affected endpoint via network-layer controls (firewall rules, reverse proxy ACLs) to reduce the pool of users who can trigger concurrent requests is a secondary mitigation, though it does not eliminate the flaw and carries the trade-off of reduced accessibility. No other workarounds are described in available advisory data.
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 framework widely used in enterprise web applications; the JSON plugin provides JSON serialization capabilities including a JSON-RPC/SMD (Service Mapping Descriptor) handling path exposed via the JSON interceptor. CWE-567 - Unsynchronized Access to Shared Data in a Multithreaded Context - identifies the root cause: the serialization state object that tracks per-response metadata is allocated or stored in a scope accessible across threads, meaning that under concurrent load, one thread's in-progress serialization context can be read by another. Affected product per vendor description: Apache Struts 7.2.1, specifically the SMD/JSON-RPC code path of the JSON interceptor. Applications using the standard json result type are explicitly not affected; only those that have opted into the SMD/JSON-RPC interceptor mode are in scope.
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 that reliable exploitation requires concurrent request timing overlap; PR:L confirmed as low-privilege authenticated; impact is confidentiality-only.
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-response serialization state could be shared across concurrent requests, allowing response content associated with one request to become observable in another. Only the SMD / JSON-RPC handling of the JSON interceptor is affected, which is not enabled by default; applications using the json result type 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-59606
GHSA-87hf-473v-8h9c
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB