Skip to content

← Public intelligence

Maven package

org.apache.struts:struts2-core

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

58 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Medium, CVSS 6.1MavenPublished

    Cross-site Scripting in Apache Struts

    CVE-2015-5169 · GHSA-vwhv-j36g-5rm8

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.20
    Fixed in
    2.3.20· Vendor fix available
    Issue
    When the Struts2 debug mode is turned on, under certain conditions an arbitrary script may be executed in the 'Problem Report' screen. Also if JSP files are exposed to be accessed directly it's possible to execute an arbitrary script. It is generally not advisable to have debug mode switched on outside of the development environment. Debug mode should always be turned off in production setup. Also never expose JSPs files directly and hide them inside WEB-INF folder or define dedicated security constraints to block access to raw JSP files. Struts = 2.3.20 is not vulnerable to this attack. We recommend upgrading to Struts 2.3.20 or higher.

    Recommended action: Upgrade to 2.3.20 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  2. UnratedMavenPublished

    Arbitrary code execution in Apache Struts 2

    CVE-2013-2134 · GHSA-gqqm-564f-vvxq

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.14.3
    Fixed in
    2.3.14.3· Vendor fix available
    Issue
    Apache Struts 2 before 2.3.14.3 allows remote attackers to execute arbitrary OGNL code via a request with a crafted action name that is not properly handled during wildcard matching, a different vulnerability than CVE-2013-2135.

    Recommended action: Upgrade to 2.3.14.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  3. UnratedMavenPublished

    Arbitrary code execution in Apache Struts 2

    CVE-2013-2135 · GHSA-pw8r-x2qm-3h5m

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.14.3
    Fixed in
    2.3.14.3· Vendor fix available
    Issue
    Apache Struts 2 before 2.3.14.3 allows remote attackers to execute arbitrary OGNL code via a request with a crafted value that contains both "${}" and "%{}" sequences, which causes the OGNL code to be evaluated twice.

    Recommended action: Upgrade to 2.3.14.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  4. Medium, CVSS 6.1MavenPublished

    Cross-site Scripting in Apache Struts

    CVE-2016-4003 · GHSA-m3x6-9v6h-4g28

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.28
    Fixed in
    2.3.28· Vendor fix available
    Issue
    Cross-site scripting (XSS) vulnerability in the URLDecoder function in JRE before 1.8, as used in Apache Struts 2.x before 2.3.28, when using a single byte page encoding, allows remote attackers to inject arbitrary web script or HTML via multi-byte characters in a url-encoded parameter.

    Recommended action: Upgrade to 2.3.28 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  5. UnratedMavenPublished

    Apache Struts Code injection due to conversion error

    CVE-2012-0838 · GHSA-mwrx-hx6x-3hhv

    Affected
    • Maven org.apache.struts:struts2-core < 2.2.3.1
    Fixed in
    2.2.3.1· Vendor fix available
    Issue
    Apache Struts 2 before 2.2.3.1 evaluates a string as an OGNL expression during the handling of a conversion error, which allows remote attackers to modify run-time data values, and consequently execute arbitrary code, via invalid input to a field.

    Recommended action: Upgrade to 2.2.3.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  6. High, CVSS 8.8MavenPublished

    Apache Struts forced double OGNL evaluation

    CVE-2016-4461 · GHSA-864w-r5qj-h6fj

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.29
    Fixed in
    2.3.29· Vendor fix available
    Issue
    Apache Struts 2.x before 2.3.29 allows remote attackers to execute arbitrary code via a "%{}" sequence in a tag attribute, aka forced double OGNL evaluation. NOTE: this vulnerability exists because of an incomplete fix for CVE-2016-0785.

    Recommended action: Upgrade to 2.3.29 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  7. UnratedMavenPublished

    ClassLoader manipulation in Apache Struts

    CVE-2014-0112 · GHSA-prjv-jj26-wf8h

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.20
    Fixed in
    2.3.20· Vendor fix available
    Issue
    ParametersInterceptor in Apache Struts before 2.3.20 does not properly restrict access to the getClass method, which allows remote attackers to "manipulate" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.

    Recommended action: Upgrade to 2.3.20 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  8. UnratedMavenPublished

    Improper Control of Generation of Code in Apache Struts

    CVE-2013-1965 · GHSA-whmq-v94q-34p9

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.14.3
    Fixed in
    2.3.14.3· Vendor fix available
    Issue
    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 arbitrary OGNL code via a crafted parameter name that is not properly handled when invoking a redirect.

    Recommended action: Upgrade to 2.3.14.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  9. UnratedMavenPublished

    Arbitrary code execution in Apache Struts

    CVE-2013-1966 · GHSA-737w-mh58-cxjp

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.14.2
    Fixed in
    2.3.14.2· Vendor fix available
    Issue
    Apache Struts 2 before 2.3.14.2 allows remote attackers to execute arbitrary OGNL code via a crafted request that is not properly handled when using the includeParams attribute in the (1) URL or (2) A tag.

    Recommended action: Upgrade to 2.3.14.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  10. UnratedMavenPublished

    ClassLoader manipulation in Apache Struts

    CVE-2014-0113 · GHSA-3c5c-xrq4-qhr8

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.20
    Fixed in
    2.3.20· Vendor fix available
    Issue
    CookieInterceptor in Apache Struts before 2.3.20, when a wildcard cookiesName value is used, does not properly restrict access to the getClass method, which allows remote attackers to "manipulate" the ClassLoader and execute arbitrary code via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0094.

    Recommended action: Upgrade to 2.3.20 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  11. UnratedMavenPublished

    ClassLoader manipulation in Apache Struts

    CVE-2014-0094 · GHSA-vrwc-qjmw-5rjm

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.16.2
    Fixed in
    2.3.16.2· Vendor fix available
    Issue
    The ParametersInterceptor in Apache Struts before 2.3.16.2 allows remote attackers to "manipulate" the ClassLoader via the class parameter, which is passed to the getClass method.

    Recommended action: Upgrade to 2.3.16.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  12. Critical, CVSS 9.8MavenPublished

    Apache Struts vulnerable to arbitrary remote code execution due to improper input validation

    CVE-2016-3087 · GHSA-mmj6-cjj4-hpr5

    Affected
    • Maven org.apache.struts:struts2-core >= 2.3.19, < 2.3.20.3; >= 2.3.21, < 2.3.24.3; >= 2.3.25, < 2.3.28.1
    Fixed in
    2.3.24.32.3.28.12.3.20.3· Vendor fix available
    Issue
    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, allow remote attackers to execute arbitrary code via vectors related to an ! (exclamation mark) operator to the REST Plugin.

    Recommended action: Upgrade to 2.3.28.1, 2.3.24.3 or 2.3.20.3 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  13. UnratedMavenPublished

    ClassLoader manipulation in Apache Struts

    CVE-2014-0116 · GHSA-hmhq-382q-mp56

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.20
    Fixed in
    2.3.20· Vendor fix available
    Issue
    CookieInterceptor in Apache Struts 2.x before 2.3.20, when a wildcard cookiesName value is used, does not properly restrict access to the getClass method, which allows remote attackers to "manipulate" the ClassLoader and modify session state via a crafted request. NOTE: this vulnerability exists because of an incomplete fix for CVE-2014-0113.

    Recommended action: Upgrade to 2.3.20 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  14. High, CVSS 8.1Exploited · CISA KEVMavenPublished

    Apache Struts RCE Vulnerability

    CVE-2016-3081 · GHSA-8c6j-ffmf-q6vm

    Affected
    • Maven org.apache.struts:struts2-core >= 2.3.19, <= 2.3.20.2; >= 2.3.25, <= 2.3.28; >= 2.3.21, <= 2.3.24.2
    Fixed in
    2.3.24.32.3.28.12.3.20.3· Vendor fix available
    Issue
    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, allow remote attackers to execute arbitrary code via method: prefix, related to chained expressions.

    Recommended action: Upgrade to 2.3.28.1, 2.3.24.3 or 2.3.20.3 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:cisa.gov (1)github.com (2)Source checked Evidence →
  15. Critical, CVSS 9.8MavenPublished

    Arbitrary code execution in Apache Struts 2

    CVE-2016-4438 · GHSA-4prj-vw9j-v6pr

    Affected
    • Maven org.apache.struts:struts2-core >= 2.3.19, < 2.3.29
    Fixed in
    2.3.29· Vendor fix available
    Issue
    The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.

    Recommended action: Upgrade to 2.3.29 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  16. High, CVSS 8.8MavenPublished

    Apache Struts RCE Vulnerability

    CVE-2016-0785 · GHSA-876p-4wgc-75rx

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.20.3; >= 2.3.24, < 2.3.24.3
    Fixed in
    2.3.24.32.3.20.3· Vendor fix available
    Issue
    Apache Struts 2.x before 2.3.20.3, 2.3.24.3, and 2.3.28 allows remote attackers to execute arbitrary code via a %{} sequence in a tag attribute, aka forced double OGNL evaluation.

    Recommended action: Upgrade to 2.3.24.3 or 2.3.20.3 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  17. High, CVSS 8.1MavenPublished

    Code injection in Apache Struts

    CVE-2013-2115 · GHSA-7ghm-rpc7-p7g5

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.14.2
    Fixed in
    2.3.14.2· Vendor fix available
    Issue
    A vulnerability introduced by forcing parameter inclusion in the URL and Anchor Tag allows remote command execution, session access and manipulation and XSS attacks. both the s:url and s:a tag provide an includeParams attribute. The main scope of that attribute is to understand whether includes http request parameter or not. The allowed values of includeParams are: none - include no parameters in the URL (default) get - include only GET parameters in the URL all - include both GET and POST parameters in the URL A request that included a specially crafted request parameter could be used to inject arbitrary OGNL code into the stack, afterward used as request parameter of an URL or A tag , which will cause a further evaluation. The second evaluation happens when the URL/A tag tries to resolve every parameters present in the original request. This lets malicious users put arbitrary OGNL statements into any request parameter (not necessarily managed by the code) and have it evaluated as…

    Recommended action: Upgrade to 2.3.14.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  18. Critical, CVSS 9.8Exploited · CISA KEVMavenPublished

    Code injection in Apache Struts

    CVE-2013-2251 · GHSA-47qp-8v9g-39hp

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.15.1
    Fixed in
    2.3.15.1· Vendor fix available
    Issue
    The Struts 2 DefaultActionMapper supports a method for short-circuit navigation state changes by prefixing parameters with "action:" or "redirect:", followed by a desired navigational target expression. This mechanism was intended to help with attaching navigational information to buttons within forms. In Struts 2 before 2.3.15.1 the information following "action:", "redirect:" or "redirectAction:" is not properly sanitized. Since said information will be evaluated as OGNL expression against the value stack, this introduces the possibility to inject server side code.

    Recommended action: Upgrade to 2.3.15.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)cisa.gov (2)Source checked Evidence →
  19. UnratedMavenPublished

    Server side object manipulation in Apache Struts

    CVE-2010-1870 · GHSA-x5fc-pgpx-59j5

    Affected
    • Maven org.apache.struts:struts2-core < 2.2.1
    Fixed in
    2.2.1· Vendor fix available
    Issue
    OGNL provides, among other features, extensive expression evaluation capabilities. This vulnerability allows a malicious user to bypass the '#'-usage protection built into the ParametersInterceptor, thus being able to manipulate server side context objects. This behavior was already addressed in S2-003, but it turned out that the resulting fix based on whitelisting acceptable parameter names closed the vulnerability only partially.

    Recommended action: Upgrade to 2.2.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  20. UnratedMavenPublished

    Apache Struts's CookieInterceptor component does not use the parameter-name whitelist

    CVE-2012-0392 · GHSA-2ppp-xj34-vvf7

    Affected
    • Maven org.apache.struts:struts2-core < 2.2.3.1
    Fixed in
    2.2.3.1· Vendor fix available
    Issue
    The CookieInterceptor component in Apache Struts before 2.3.1.1 does not use the parameter-name whitelist, which allows remote attackers to execute arbitrary commands via a crafted HTTP Cookie header that triggers Java code execution through a static method.

    Recommended action: Upgrade to 2.2.3.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  21. Critical, CVSS 9.8Exploited · CISA KEVMavenPublished

    Apache Struts Remote Java Code Execution

    CVE-2012-0391 · GHSA-4wrr-9h5r-m92w

    Affected
    • Maven org.apache.struts:struts2-core < 2.2.3.1
    Fixed in
    2.2.3.1· Vendor fix available
    Issue
    The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during certain exception handling for mismatched data types of properties, which allows remote attackers to execute arbitrary Java code via a crafted parameter.

    Recommended action: Upgrade to 2.2.3.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)cisa.gov (2)Source checked Evidence →
  22. UnratedMavenPublished

    Apache Struts's ParameterInterceptor component does not prevent access to public constructors

    CVE-2012-0393 · GHSA-hxqq-w4mr-mc62

    Affected
    • Maven org.apache.struts:struts2-core < 2.3.1.1
    Fixed in
    2.3.1.1· Vendor fix available
    Issue
    The ParameterInterceptor component in Apache Struts before 2.3.1.1 does not prevent access to public constructors, which allows remote attackers to create or overwrite arbitrary files via a crafted parameter that triggers the creation of a Java object.

    Recommended action: Upgrade to 2.3.1.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  23. High, CVSS 8.8MavenPublished

    Unrestricted Upload of File with Dangerous Type in Apache Struts2

    CVE-2012-1592 · GHSA-8m5q-crqq-6pmf

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0, < 2.5.22
    Fixed in
    2.5.22· Vendor fix available
    Issue
    A local code execution issue exists in Apache Struts2 when processing malformed XSLT files, which could let a malicious user upload and execute arbitrary files. A patch exists as of version 2.5.22.

    Recommended action: Upgrade to 2.5.22 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  24. Critical, CVSS 9.8MavenPublished

    Struts ParameterInterceptor vulnerability allows remote command execution

    CVE-2011-3923 · GHSA-j68f-8h6p-9h5q

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.3.1.2
    Fixed in
    2.3.1.2· Vendor fix available
    Issue
    Regular expression in ParametersInterceptor matches top'foo' as a valid expression, which OGNL treats as (top['foo'])(0) and evaluates the value of 'foo' action parameter as an OGNL expression. This lets malicious users put arbitrary OGNL statements into any String variable exposed by an action and have it evaluated as an OGNL expression and since OGNL statement is in HTTP parameter value attacker can use blacklisted characters (e.g. #) to disable method execution and execute arbitrary methods, bypassing the ParametersInterceptor and OGNL library protections.

    Recommended action: Upgrade to 2.3.1.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  25. Critical, CVSS 9.8MavenPublished

    Expression Language Injection in Apache Struts

    CVE-2021-31805 · GHSA-v8j6-6c2r-r27c

    Affected
    • Maven org.apache.struts:struts2-core >= 2.0.0, < 2.5.30
    Fixed in
    2.5.30· Vendor fix available
    Issue
    The fix issued for CVE-2020-17530 was incomplete. So from Apache Struts 2.0.0 to 2.5.29, still some of the tag’s attributes could perform a double evaluation if a developer applied forced OGNL evaluation by using the %{...} syntax. Using forced OGNL evaluation on untrusted user input can lead to a Remote Code Execution and security degradation.

    Recommended action: Upgrade to 2.5.30 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →