Skip to content

GHSA-2j39-qcjm-428w CVE-2023-50164

Apache Struts vulnerable to path traversal

Critical Maven
Severity
9.8 / 10
Critical · CVSS 3.1
Exploit chance (EPSS)
80.82%
Chance of exploitation in the next 30 days. Higher than 99.63% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-552 Files or Directories Accessible to External Parties
Fix
2.5.33
Upgrade org.apache.struts:struts2-core to this version or later

Description

An attacker can manipulate file upload params to enable paths traversal and under some circumstances this can lead to uploading a malicious file which can be used to perform Remote Code Execution. Users are recommended to upgrade to versions Struts 2.5.33 or Struts 6.3.0.2 or greater to fix this issue.

Affected versions

Maven

PackageVulnerableFixed in
org.apache.struts:struts2-core
>= 2.0.0, < 2.5.33
2.5.33
org.apache.struts:struts2-core
>= 6.0.0, < 6.3.0.2
6.3.0.2

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

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

Severity breakdown

CVSS 3.1 9.8

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

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

Weakness

CWE-552: Files or Directories Accessible to External Parties

The product makes files or directories accessible to unauthorized actors, even though they should not be.

How to prevent it
  • Implementation, System Configuration, Operation: When storing data in the cloud (e.g., S3 buckets, Azure blobs, Google Cloud Storage, etc.), use the provider's controls to disable public access.

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-qcfc-hmrc-59x7
Apache Struts 2 is Missing XML Validation
High 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
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