Skip to main content

Apache Struts CVE-2026-73632

| EUVDEUVD-2026-59606 MEDIUM
Unsynchronized Access to Shared Data in a Multithreaded Context (CWE-567)
2026-08-15 security@apache.org GHSA-87hf-473v-8h9c
4.3
CVSS 3.1 · Vendor: apache
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with low-privilege credentials
  2. Delivery
    Identify SMD/JSON-RPC endpoint on target application
  3. Exploit
    Send high-volume concurrent JSON-RPC requests
  4. Execution
    Race per-response serialization context across threads
  5. Impact
    Read 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

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

Apache Struts 7.2.1

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

Vendor (apache) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 3.1 LOW

AC:H reflects that reliable exploitation requires concurrent request timing overlap; PR:L confirmed as low-privilege authenticated; impact is confidentiality-only.

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

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

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

Lifecycle Timeline

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

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

EPSS Score
0.1%
Top 96% exploitable
Prevalence
High
widely deployed Java MVC framework across enterprise and government applications
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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