Arbitrary Code Execution Affecting org.apache.struts:struts2-struts1-plugin package, versions [2.3,)



    Attack Complexity Low
    Confidentiality High
    Integrity High
    Availability High

    Threat Intelligence

    Exploit Maturity Mature
    EPSS 97.52% (100th percentile)
Expand this section
9.8 critical

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • published 22 Aug 2017
  • disclosed 6 Jul 2017
  • credit Unknown

How to fix?

There is no fix version for org.apache.struts:struts2-struts1-plugin.

The vendor recommends the following:

Always use resource keys instead of passing a raw message to the ActionMessage as shown below, never pass a raw value directly

messages.add("msg", new ActionMessage("struts1.gangsterAdded", gform.getName()));

and never like this

messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));


org.apache.struts:struts2-struts1-plugin is a Struts1 plugin for Struts2.

Affected versions of the package are vulnerable to Arbitrary Code Execution. When using untrusted input as a part of the error message in the ActionMessage class, a malicious user can pass in a raw message to the ActionMessage, which will then run on the server.