Skip to main content

Apache Struts CVE-2026-104714

| EUVDEUVD-2026-92625 HIGH
Race Condition (CWE-362)
8.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Reach endpoint rendering localized date message
  2. Exploit
    Issue many concurrent requests racing shared formatter
  3. Execution
    Receive another user's value in response
  4. Impact
    Harvest leaked cross-user data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target application to use localized (i18n) messages that format a date or time argument - the vendor explicitly states that applications whose localized messages format no date/time arguments are NOT affected, so this is the exact gating condition. It further requires concurrent request processing so that one request's formatter state bleeds into another's (the shared, non-isolated formatter in the application-wide text provider is the vulnerable component). Limiting factors: the outcome is non-deterministic and timing-dependent (you cannot choose which user's data leaks or when, and it may instead surface as a server error), it only applies to running versions in the listed ranges, and the leaked content is confined to values passed as date/time format arguments rather than arbitrary memory or files.

Impact

Signals conflict sharply. The published CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/C:H/I:H/A:H = 8.8 High) portrays this as a serious network-exploitable flaw, but the underlying defect is a non-deterministic race condition in a shared date/time formatter, and three independent factors pull the real-world risk down. First, EPSS is only 0.18% (7th percentile), indicating very low predicted exploitation likelihood. Second, there is no CISA KEV listing and no public exploit code referenced in any source. Third, the published AC:L is questionable for a 'concurrent execution with improper synchronization' (CWE-362) issue - successful exploitation depends on timing and on another user concurrently rendering a localized date/time message, which is not reliably attacker-controlled; AC:H is more defensible. The C:H/I:H/A:H impact also looks overstated: the described effect is cross-user leakage of a date/time-formatted value (confidentiality) or a transient server error (availability), with no attacker-driven data modification implied, so I:H in particular is hard to justify from the description. Net assessment: this is a legitimate but moderate issue - a real cross-tenant information-disclosure bug worth patching in a normal maintenance cycle, not an emergency. It is NOT a case of active mass exploitation; low EPSS plus absent KEV/POC suggests it is unlikely to be opportunistically weaponized. Discrepancy to verify with vendor: the 8.8 score versus a race-condition info-leak whose practical impact and attack complexity appear lower than the vector states.

Exploit ScenarioDerived

An authenticated or anonymous user repeatedly requests a page that renders a localized message containing a date or time argument, while the application concurrently serves other users rendering the same message. Due to the unsynchronized shared formatter in the application-wide text provider, a date/time value belonging to another in-flight request is rendered into the attacker's response, leaking that user's data; alternatively the formatter corrupts and the request fails as a server error. No public proof-of-concept exploit was identified at time of analysis.

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

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

Alert me

AnalysisAIv2 – Oct 06, 2026

A race condition in Apache Struts' application-wide localization (i18n) text provider lets a message formatter that has been cached for one request be reused by concurrently served requests, so a date or time value belonging to one user can surface in another user's rendered response, or the formatting can fail and appear as a server error. The flaw affects Struts 2.0.0 through 2.3.37, 2.5.0 through 2.5.33, 6.0.0 through 6.11.0, and 7.0.0 through 7.3.0; applications whose localized messages format no date or time arguments are explicitly not affected, which is the exact gating condition for exposure. No public exploit code or confirmed active exploitation has been identified, EPSS is low at 0.18% (7th percentile), and the outcome is timing-dependent and non-deterministic - leaking only values passed as date/time format arguments, not arbitrary memory - which is why our assessment (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L) is materially more conservative than the vendor's 8.8 score.

Earlier versions of this analysis (1)
v1 Oct 05, 2026 - 18:22

Cross-request leakage of date and time values, along with intermittent rendering failures, affects Apache Struts deployments whose own localized message bundles format a date or time argument. The formatter retained by Struts' application-wide text provider is reused by concurrently served requests without isolation, so a value belonging to one user can appear in another user's response or the render can fail and surface as a server error; the assessed vector (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L) indicates no authentication is required and no user interaction, though the trigger is ordinary concurrent traffic rather than a crafted malicious request. Affected releases are 2.0.0 through 2.3.37, 2.5.0 through 2.5.33, 6.0.0 through 6.11.0, and 7.0.0 through 7.3.0; there is no confirmed active exploitation (CISA KEV) and no public exploit identified at time of analysis, and impact is bounded to low confidentiality and low availability loss per the independent assessment.

RemediationAI

Vendor-released patch: upgrade to Apache Struts 6.12.0 or 7.4.0, both of which fix the issue; the 2.x lines (2.3.37 and earlier) have no patched release in the advisory, so any 2.x deployment must migrate to 6.12.0 or 7.4.0, which is a breaking upgrade requiring compatibility testing against OGNL and interceptor behavior. Deployments that cannot patch immediately can reduce exposure at the application level by removing or pre-formatting date and time arguments in localized message bundles - pass the already-formatted string into the message instead of leaving the formatter to render a date/time argument - which eliminates the shared-mutable-formatter path entirely but requires editing every affected properties file and re-testing locale coverage; note the vendor states this condition is what makes an application affected, so it is a genuine workaround rather than a generic hardening step. As a stopgap with a real throughput cost, serialize request handling for the affected message-rendering endpoints (single-threaded execution or an application-wide lock around localized rendering) so that concurrent requests cannot interleave on the cached formatter, accepting substantial latency degradation under load. Do not rely on network-layer controls: the flaw is triggered through normal application traffic, and the outcome is non-deterministic, so WAF signatures cannot reliably detect it. Confirm remediation by verifying the deployed Struts artifact version rather than trusting the servlet context banner, and monitor server-error rates as an indirect indicator of the availability side of this bug. References: S2-078 (https://cwiki.apache.org/confluence/display/WW/S2-078), Apache Struts security page (https://struts.apache.org/), oss-security advisory (https://seclists.org/oss-sec/2026/q4/52).

Affected VersionsENISA

Apache Struts 6.0.0 ≤6.11.0
Apache Struts 2.5.0 ≤2.5.33
Apache Struts 7.0.0 ≤7.3.0
Apache Struts 2.0.0 ≤2.3.37

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

The root cause is CWE-362, concurrent execution using a shared resource with improper synchronization. Apache Struts resolves localized messages through an application-wide text provider that caches the parsed message formatter (the java.text.MessageFormat-style object) keyed by message and locale; that cached formatter instance is not thread-safe and carries mutable internal state while it renders a localized message. When two requests are handled concurrently and both messages contain date or time format arguments, the second request can observe or overwrite the first request's formatting state, producing cross-user output contamination in the rendered message or a formatting exception that bubbles up as a 5xx response. The vulnerable surface is therefore limited to the message-rendering path (i18n resource bundles with date/time arguments) rather than request parsing, OGNL evaluation, or file handling. Per our independent assessment the attack is network-reachable with no privileges and no user interaction, but requires high complexity (AC:H) because successful exploitation depends on precise concurrent timing and on the target application actually using localized date/time-formatted messages; confidentiality and availability impacts are limited (C:L/A:L) and there is no integrity impact, since the attacker influences which timing window is hit rather than the content of the leaked value. The vendor's published vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) treats the same defect as low-complexity, authenticated, and high-impact across all three metrics, which is not supported by the stated gating conditions and non-deterministic outcome.

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

NVD PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 4.8 MEDIUM

Race condition needs attacker-uncontrolled concurrent timing so AC:H; typically reachable on public pages so PR:N; leak limited to date/time-formatted values (C:L); no attacker data modification (I:N); only transient server errors (A:L).

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

Primary rating from NVD.

CVSS VectorNVD

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

Lifecycle Timeline

2
CVSS changed
Oct 06, 2026 - 15:22 NVD
8.8 (HIGH)
CVE Published
Oct 05, 2026 - 17:48 oss-security
CRITICAL

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

Organizations running affected Apache Struts versions with localized date/time message formatting face potential cross-user disclosure of date or time values and intermittent application errors. The exposure is confined to a specific configuration and is non-deterministic, with no public exploit identified at time of analysis. Leadership should prioritize verifying exposure, because affected customer-facing or internal applications could experience privacy and availability incidents even without confirmed exploitation.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include confirming whether localized messages format date/time arguments, removing or pre-formatting those arguments, isolating or rate-limiting affected endpoints, and monitoring for cross-user data leakage and formatting-related server errors.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
High
widely deployed enterprise Java web application framework
Data Quality
5 sources
Confidence: Medium

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.2%
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
No
Human Impact
Medium
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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.

Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).

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