Skip to content

GHSA-729q-fcgp-r5xh CVE-2023-41835

Apache Struts Improper Control of Dynamically-Managed Code Resources vulnerability

High Maven
Severity
7.5 / 10
High · CVSS 3.1
Exploit chance (EPSS)
7.30%
Chance of exploitation in the next 30 days. Higher than 94.37% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-459 Incomplete Cleanup
Fix
6.3.0.1
Upgrade org.apache.struts:struts2-core to this version or later

Description

When a Multipart request is performed but some of the fields exceed the maxStringLength limit, the upload files will remain in struts.multipart.saveDir even if the request has been denied. Users are recommended to upgrade to versions Struts 2.5.32 or 6.1.2.2 or Struts 6.3.0.1 or greater, which fix this issue.

Affected versions

Maven

PackageVulnerableFixed in
org.apache.struts:struts2-core
>= 6.2.0, < 6.3.0.1
6.3.0.1
org.apache.struts:struts2-core
>= 6.0.0, < 6.1.2.2
6.1.2.2
org.apache.struts:struts2-core
< 2.5.32
2.5.32

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

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

Severity breakdown

CVSS 3.1 7.5

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

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

Weakness

CWE-459: Incomplete Cleanup

The product does not properly "clean up" and remove temporary or supporting resources after they have been used.

How to prevent it
  • Architecture and Design, Implementation: Temporary files and other supporting resources should be deleted/released immediately after they are no longer needed.

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