Hello,
We use struts version 1.2.2 and commons-file upload version 1.1.1. It is not
clear from this notification if these versions are impacted.
1. Can anyone confirm if these versions or affected?
2. If they are affected, what can be done? Should we upgrade to Struts
2.x?
The notification below only talks about struts 2.x version.
-Deepak
PURPOSE
-------------
The purpose of this Alert is to bring attention to a recently announced
security vulnerability for Apache Struts.
ASSESSMENT
------------------
Apache Struts up to 2.3.16.1 is being reported as having a zero-day
vulnerability. In particular, Struts 2.3.16.1 has an issue with ClassLoader
manipulation via request parameters which was supposed to be resolved on 2
March 2014 through a security fix. Unfortunately, it was confirmed that the
correction wasn't sufficient.
According to the Apache Struts Team, a security fix release fully addressing
all these issues is in preparation and will be released as soon as possible.
Once the release is available, all Struts 2 users are strongly encouraged to
update their installations.
SUGGESTED ACTION
----------------------------
The Apache Struts Team has published the following mitigation information:
In the struts.xml, replace all custom references to params-interceptor with the
following code, especially regarding the class-pattern found at the beginning
of the excludeParams list:
<interceptor-ref name="params">
<param
name="excludeParams">(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
</interceptor-ref>
If you are using default interceptor stacks packaged in struts-default.xml,
change your parent packages to a customized secured configuration as in the
following example. Given you are using defaultStack so far, change your
packages from
<package name="default" namespace="/" extends="struts-default">
<default-interceptor-ref name="defaultStack" />
...
...
</package>
to
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor-stack name="secureDefaultStack">
<interceptor-ref name="defaultStack">
<param
name="params.excludeParams">(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="secureDefaultStack" />
...
</package>
References:
=================
http://struts.apache.org/announce.html#a20140302
IMPORTANT NOTICE: This email is intended solely for the use of the individual
to whom it is addressed and may contain information that is privileged,
confidential or otherwise exempt from disclosure under applicable law. If the
reader of this email is not the intended recipient or the employee or agent
responsible for delivering the message to the intended recipient, you are
hereby notified that any dissemination, distribution, or copying of this
communication is strictly prohibited. If you have received this communication
in error, please immediately return the original message to the sender at the
listed email address. In accordance with Kewill policy, emails sent and
received may be monitored. Although Kewill takes reasonable precautions to
minimize the risk, Kewill accepts no responsibility for any loss or damage
should this email contain any virus, or similar destructive or mischievous code.