Skip to main content

Apache Struts EUVDEUVD-2026-59605

| CVE-2026-73631 MEDIUM
Unsynchronized Access to Shared Data in a Multithreaded Context (CWE-567)
2026-08-15 security@apache.org GHSA-gvf6-rf7m-9h3g
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 to Struts JSON endpoint
  2. Delivery
    Submit high-volume concurrent JSON requests
  3. Exploit
    Trigger unsynchronized parsing state collision
  4. Execution
    Observe cross-request data disclosure
  5. Impact
    Potentially 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.

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

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

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

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 the non-default JSON plugin prerequisite and concurrent timing dependency; PR:L confirmed by vendor CVSS; no integrity or availability impact.

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

EPSS Score
0.1%
Top 96% exploitable
Prevalence
High
widely used Java MVC framework across enterprise Java 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