Skip to content

GHSA-qcfc-hmrc-59x7 CVE-2025-68493

Apache Struts 2 is Missing XML Validation

High Maven
Severity
8.1 / 10
High · CVSS 3.1
Exploit chance (EPSS)
50.42%
Chance of exploitation in the next 30 days. Higher than 98.91% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-112 Missing XML Validation
CWE-611 Improper Restriction of XML External Entity Reference
Fix
6.1.1
Upgrade org.apache.struts:struts2-core to this version or later

Description

Missing XML Validation vulnerability in Apache Struts, Apache Struts.

This issue affects Apache Struts: from 2.0.0 before 2.2.1; Apache Struts: from 2.2.1 through 6.1.0.

Users are recommended to upgrade to version 6.1.1, which fixes the issue.

Affected versions

Maven

PackageVulnerableFixed in
com.opensymphony:xwork
>= 2.0.0
No fix yet
org.apache.struts.xwork:xwork-core
>= 2.2.1
No fix yet
org.apache.struts:struts2-core
>= 2.0.0, <= 2.3.37
No fix yet
org.apache.struts:struts2-core
>= 2.5.0, <= 2.5.33
No fix yet
org.apache.struts:struts2-core
>= 6.0.0, < 6.1.1
6.1.1

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

org.apache.struts:struts2-core Maven → 6.1.1

maven
<dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>6.1.1</version></dependency>
gradle
implementation("org.apache.struts:struts2-core:6.1.1")

Severity breakdown

CVSS 3.1 8.1

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
High

Weakness

CWE-112: Missing XML Validation

The product accepts XML from an untrusted source but does not validate the XML against the proper schema.

How to prevent it
  • Architecture and Design: Always validate XML input against a known XML Schema or DTD. It is not possible for an XML parser to validate all aspects of a document's content because a parser cannot understand the complete semantics of the data. However, a parser can do a complete and thorough job of checking the document's structure and therefore guarantee to the code that processes the document that the content is well-formed.

CWE-611: Improper Restriction of XML External Entity Reference

The product processes an XML document that can contain XML entities with URIs that resolve to documents outside of the intended sphere of control, causing the product to embed incorrect documents into its output.

How to prevent it
  • Implementation, System Configuration: Many XML parsers and validators can be configured to disable external entity expansion.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-8c6j-ffmf-q6vm
Apache Struts RCE Vulnerability
High Known exploited Also affects org.apache.struts:struts2-core
GHSA-47qp-8v9g-39hp
Code injection in Apache Struts
Critical Known exploited Also affects org.apache.struts:struts2-core
GHSA-4wrr-9h5r-m92w
Apache Struts Remote Java Code Execution
Critical Known exploited Also affects org.apache.struts:struts2-core
CVE-2020-17530
Remote code execution in Apache Struts
Critical Known exploited Also affects org.apache.struts:struts2-core
GHSA-j77q-2qqg-6989
Apache Struts vulnerable to remote arbitrary command execution due to improper input validation
Critical Known exploited Also affects org.apache.struts:struts2-core
CVE-2018-11776
Apache Struts vulnerable to remote command execution (RCE) due to improper input validation
High Known exploited Also affects org.apache.struts:struts2-core
GHSA-rg58-xhh7-mqjw
Apache Struts has a Denial of Service vulnerability
High Also affects org.apache.struts:struts2-core
GHSA-xx7v-hqxh-cjr9
Apache Struts is Vulnerable to DoS via File Leak
High Also affects org.apache.struts:struts2-core
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor