CVE-2018-11776: Apache Struts Remote Code Execution Vulnerability
Apache Struts contains a Remote Code Execution when using results with no namespace and it's upper actions have no or wildcard namespace. The same flaw exists when using a url tag with no value, action set, and it's upper actions have no or wildcard namespace.
Other sources
Apache Struts contains a vulnerability that allows for remote code execution under two circumstances. One, where the alwaysSelectFullNamespace option is true and the value isn't set for a result defined in underlying configurations and in same time, its upper package configuration have no or wildcard namespace. Or, using URL tag which doesn't have value and action set and in same time, its upper package configuration have no or wildcard namespace.
— CISA
Apache Struts versions 2.3 to 2.3.34 and 2.5 to 2.5.16 suffer from possible Remote Code Execution when alwaysSelectFullNamespace is true (either by user or a plugin like Convention Plugin) and then: results are used with no namespace and in same time, its upper package have no or wildcard namespace and similar to results, same possibility when using url tag which doesn't have value and action set and in same time, its upper package have no or wildcard namespace.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
maven/org.apache.struts:struts2-coreto a version that resolves this vulnerability.Fixed in 2.5.17 - Upgrade
Upgrade
maven/org.apache.struts:struts2-coreto a version that resolves this vulnerability.Fixed in 2.3.35 - Configuration
Set the alwaysSelectFullNamespace configuration option to false to avoid the vulnerable code path that can lead to remote code execution when results or url tags rely on no namespace and upper packages use no or wildcard namespaces.
Apache Struts alwaysSelectFullNamespace = false - Configuration
Ensure results, actions, and url tags explicitly set a non-wildcard namespace (do not use no namespace or wildcard namespaces) so the vulnerable resolution behavior does not occur.
Apache Struts (results/actions/url tag) namespace = explicit non-wildcard namespace
Event History
Frequently Asked Questions
What is CVE-2018-11776?
CVE-2018-11776 is a vulnerability in Apache Struts that allows for remote code execution.
What versions of Apache Struts are affected by CVE-2018-11776?
Apache Struts versions 2.3 to 2.3.34 and 2.5 to 2.5.16 are affected by CVE-2018-11776.
What is the severity of CVE-2018-11776?
CVE-2018-11776 has a severity rating of 8.1 (Critical).
How can I fix CVE-2018-11776?
To fix CVE-2018-11776, upgrade to Apache Struts version 2.5.17 or 2.3.35, which contain the necessary security patches.
Where can I find more information about CVE-2018-11776?
You can find more information about CVE-2018-11776 on the NIST NVD website, the Apache Struts Confluence page, and the GitHub advisory page.