Author: lukaszlenart
Date: Mon Jun 20 05:26:00 2016
New Revision: 991019
Log:
Updates production
Modified:
websites/production/struts/content/docs/s2-036.html
websites/production/struts/content/docs/s2-037.html
websites/production/struts/content/docs/s2-038.html
websites/production/struts/content/docs/s2-039.html
websites/production/struts/content/docs/s2-040.html
Modified: websites/production/struts/content/docs/s2-036.html
==============================================================================
--- websites/production/struts/content/docs/s2-036.html (original)
+++ websites/production/struts/content/docs/s2-036.html Mon Jun 20 05:26:00 2016
@@ -125,7 +125,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><h2
id="S2-036-Summary">Summary</h2>Forced double OGNL evaluation, when evaluated
on raw user input in tag attributes, may lead to remote code execution (similar
to S2-029)<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Who should read
this</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>All Struts 2
developers and users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible Remote Code Execution
vulnerability</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Always validate incoming parameters' values
when r
e-assigning them to certain Struts' tags attributes.</p><p>Don't use %{...}
syntax in tag attributes other than <em>value</em> unless you have a valid
use-case.</p><p>Alternatively upgrade to <a shape="rect"
href="version-notes-2328.html">Struts 2.3.29</a> or <a shape="rect"
href="version-notes-251.html">Struts 2.5.1</a></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Affected Software</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Struts 2.0.0 - Struts<span style="color:
rgb(23,35,59);"> 2.3.28.1</span></p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Reporters</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><span
class="Apple-tab-span"><span>Alvaro</span> </span>Munoz alvaro dot munoz
at hpe.com</td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>CVE
Identifier</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><span
style="color: rgb(34,34,34);">CVE-2016-0785</span></p></td></tr></tbody></ta
ble></div><h2 id="S2-036-Problem">Problem</h2><p>The same issue was reported
in <a shape="rect" href="s2-029.html">S2-029</a> but the proposed solutions
were not fully proper. The Apache Struts frameworks when forced, performs
double evaluation of attributes' values assigned to certain tags so it is
possible to pass in a value that will be evaluated again when a tag's
attributes will be rendered.</p><h2 id="S2-036-Solution">Solution</h2><p>Adding
a proper validation of each value that's coming in and it's used in tag's
attributes.</p><p>Don't use forced evaluation of an attribute other than
<em>value</em> using %{...} syntax unless really needed for a valid
use-case. </p><p>By <span style="line-height: 1.42857;">upgrading to
Struts 2.3.29 or 2.5.1, possible malicious effects of forced double evaluation
are limited.</span></p><h2 id="S2-036-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility issues are expected when
upgrading to Stru
ts 2.3.28 - it can happen that some OGNL expressions stop working because of
performing disallowed arithmetic operations and assigments.</p><h2
id="S2-036-Workaround">Workaround</h2><p>Not possible as this fix requires
changes in OGNL and how Struts uses OGNL in certain
aspects.</p><p> </p></div>
+ <div id="ConfluenceContent"><h2
id="S2-036-Summary">Summary</h2>Forced double OGNL evaluation, when evaluated
on raw user input in tag attributes, may lead to remote code execution (similar
to S2-029)<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Who should read
this</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>All Struts 2
developers and users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible Remote Code Execution
vulnerability</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Always validate incoming parameters' values
when r
e-assigning them to certain Struts' tags attributes.</p><p>Don't use %{...}
syntax in tag attributes other than <em>value</em> unless you have a valid
use-case.</p><p>Alternatively upgrade to <a shape="rect"
href="version-notes-2328.html">Struts 2.3.29</a> or <a shape="rect"
href="version-notes-251.html">Struts 2.5.1</a></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Affected Software</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Struts 2.0.0 - Struts<span style="color:
rgb(23,35,59);"> 2.3.28.1</span></p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Reporters</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><span
class="Apple-tab-span"><span>Alvaro</span> </span>Munoz alvaro dot munoz
at hpe.com</td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>CVE
Identifier</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><span
style="color: rgb(34,34,34);">CVE-2016-0785</span></p></td></tr></tbody></ta
ble></div><h2 id="S2-036-Problem">Problem</h2><p>The same issue was reported
in <a shape="rect" href="s2-029.html">S2-029</a> but the proposed solutions
were not fully proper. The Apache Struts frameworks when forced, performs
double evaluation of attributes' values assigned to certain tags so it is
possible to pass in a value that will be evaluated again when a tag's
attributes will be rendered.</p><h2 id="S2-036-Solution">Solution</h2><p>Adding
a proper validation of each value that's coming in and it's used in tag's
attributes.</p><p>Don't use forced evaluation of an attribute other than
<em>value</em> using %{...} syntax unless really needed for a valid
use-case. </p><p>By <span style="line-height: 1.42857;">upgrading to
Struts 2.3.29 or 2.5.1, possible malicious effects of forced double evaluation
are limited.</span></p><h2 id="S2-036-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility issues are expected when
upgrading to Stru
ts 2.3.29 - it can happen that some OGNL expressions stop working because of
performing disallowed arithmetic operations and assigments.</p><h2
id="S2-036-Workaround">Workaround</h2><p>Not possible as this fix requires
changes in OGNL and how Struts uses OGNL in certain
aspects.</p><p> </p></div>
</div>
Modified: websites/production/struts/content/docs/s2-037.html
==============================================================================
--- websites/production/struts/content/docs/s2-037.html (original)
+++ websites/production/struts/content/docs/s2-037.html Mon Jun 20 05:26:00 2016
@@ -125,7 +125,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><h2
id="S2-037-Summary">Summary</h2>Remote Code Execution can be performed when
using REST Plugin.<div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Who should read this</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>All Struts 2 developers and
users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible Remote Code
Execution</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>High</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Upgrade to<span> </span><a
shape="rect" href="version-notes-2329.html">Struts
2.3.29</a>.</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Struts 2.3.20 - Struts <span style="color:
rgb(23,35,59);">Struts 2.3.28.1</span></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Reporter</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Chao Jack <span style="color:
rgb(34,34,34);">PKAV_香草</span> jc1990999 at yahoo dot
com</p><p>Shinsaku Nomura nomura at bitforest dot jp</p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>CVE Identifier</p></th><td
colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4438</p></td></tr></tbody></table></div><h2
id="S2-037-Problem">Problem</h2><p>It is possible to pass a malicious
expression which can be used to execute arbitrary code on server side when
using the REST Plugin.</p><h2 id="S2-037-Solution">Solution</h2><p>Upgrade to
Apache Struts version 2.3.29.</p><h2 id="S2-037-Backwardcompatibility">Backward
compatibility</h2><p>Som
e backward incompatibility issues are expected when upgrading to Struts 2.3.28
- it can happen that some OGNL expressions stop working because of performing
disallowed arithmetic operations and assigments.</p><h2
id="S2-037-Workaround">Workaround</h2><p>Not possible as this fix requires
changes in OGNL and how Struts uses OGNL in certain aspects.</p></div>
+ <div id="ConfluenceContent"><h2
id="S2-037-Summary">Summary</h2>Remote Code Execution can be performed when
using REST Plugin.<div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Who should read this</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>All Struts 2 developers and
users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible Remote Code
Execution</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>High</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Upgrade to<span> </span><a
shape="rect" href="version-notes-2329.html">Struts
2.3.29</a>.</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Struts 2.3.20 - Struts <span style="color:
rgb(23,35,59);">Struts 2.3.28.1</span></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Reporter</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Chao Jack <span style="color:
rgb(34,34,34);">PKAV_香草</span> jc1990999 at yahoo dot
com</p><p>Shinsaku Nomura nomura at bitforest dot jp</p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>CVE Identifier</p></th><td
colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4438</p></td></tr></tbody></table></div><h2
id="S2-037-Problem">Problem</h2><p>It is possible to pass a malicious
expression which can be used to execute arbitrary code on server side when
using the REST Plugin.</p><h2 id="S2-037-Solution">Solution</h2><p>Upgrade to
Apache Struts version 2.3.29.</p><h2 id="S2-037-Backwardcompatibility">Backward
compatibility</h2><p>Som
e backward incompatibility issues are expected when upgrading to Struts 2.3.29
- it can happen that some OGNL expressions stop working because of performing
disallowed arithmetic operations and assigments.</p><h2
id="S2-037-Workaround">Workaround</h2><p>Not possible as this fix requires
changes in OGNL and how Struts uses OGNL in certain aspects.</p></div>
</div>
Modified: websites/production/struts/content/docs/s2-038.html
==============================================================================
--- websites/production/struts/content/docs/s2-038.html (original)
+++ websites/production/struts/content/docs/s2-038.html Mon Jun 20 05:26:00 2016
@@ -138,7 +138,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><h2 id="S2-038-Summary">Summary</h2>It
is possible to bypass token validation and perform a CSRF attack<div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Who should read this</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p>All Struts 2 developers and
users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible CSRF attack</p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Maximum security
rating</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Recommendation</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Upgrade to<span> </span><a shape="rect"
href="version-notes-2329.html">Struts 2.3.29</a>.</p></td></tr><tr><th
colspan="1" rowspan="1" cla
ss="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Struts 2.3.20 - Struts <span style="color:
rgb(23,35,59);">Struts 2.3.28.1</span></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Reporter</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Takeshi Terada websec02 dot g02 at
gmail.com</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4430</p></td></tr></tbody></table></div><h2
id="S2-038-Problem">Problem</h2><p>It is possible to pass a malicious
expression which can be used to bypass token validation and perform CSRF
attack.</p><h2 id="S2-038-Solution">Solution</h2><p>Upgrade to Apache Struts
version 2.3.29.</p><h2 id="S2-038-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility issues are expected when
upgrading to Struts 2.3.28 - it can happen that some OGNL expressions stop
working because of performing disallowed arithmetic operations and
assignments.</p><h2 id="S2-038-Workaround">Workaround</h2><p>You can try to use
more restrictive RegEx used to clean up action names as below:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+ <div id="ConfluenceContent"><h2 id="S2-038-Summary">Summary</h2>It
is possible to bypass token validation and perform a CSRF attack<div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Who should read this</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p>All Struts 2 developers and
users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible CSRF attack</p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Maximum security
rating</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Recommendation</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Upgrade to<span> </span><a shape="rect"
href="version-notes-2329.html">Struts 2.3.29</a>.</p></td></tr><tr><th
colspan="1" rowspan="1" cla
ss="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Struts 2.3.20 - Struts <span style="color:
rgb(23,35,59);">Struts 2.3.28.1</span></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Reporter</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Takeshi Terada websec02 dot g02 at
gmail.com</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4430</p></td></tr></tbody></table></div><h2
id="S2-038-Problem">Problem</h2><p>It is possible to pass a malicious
expression which can be used to bypass token validation and perform CSRF
attack.</p><h2 id="S2-038-Solution">Solution</h2><p>Upgrade to Apache Struts
version 2.3.29.</p><h2 id="S2-038-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility issues are expected when
upgrading to Struts 2.3.29 - it can happen that some OGNL expressions stop
working because of performing disallowed arithmetic operations and
assignments.</p><h2 id="S2-038-Workaround">Workaround</h2><p>You can try to use
more restrictive RegEx used to clean up action names as below:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><constant name="struts.allowed.action.names"
value="[a-zA-Z]*" /></pre>
</div></div><p>Please adjust the RegEx to your action naming pattern, it
should be as narrowed as possible.</p></div>
</div>
Modified: websites/production/struts/content/docs/s2-039.html
==============================================================================
--- websites/production/struts/content/docs/s2-039.html (original)
+++ websites/production/struts/content/docs/s2-039.html Mon Jun 20 05:26:00 2016
@@ -138,7 +138,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><h2
id="S2-039-Summary">Summary</h2>Getter as action method leads to security
bypass<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Who should read
this</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>All Struts 2
developers and users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible manipulation of return result and
bypassing validation</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Upgrade to<span> </span><a
shape="rect" href="version-notes-2329.html">Struts
2.3.29</a>.</p></td></tr><tr><th col
span="1" rowspan="1" class="confluenceTh"><p>Affected Software</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p>Struts 2.3.20 - Struts <span
style="color: rgb(23,35,59);">Struts 2.3.28.1</span></p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Reporter</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p>Takeshi Terada websec02 dot g02
at gmail.com</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4433</p></td></tr></tbody></table></div><h2
id="S2-039-Problem">Problem</h2><p>It is possible to pass a crafted request
which can be used to bypass internal security mechanism and manipulate return
string which can leads to redirecting user to unvalidated location.</p><h2
id="S2-039-Solution">Solution</h2><p>Upgrade to Apache Struts version
2.3.29.</p><h2 id="S2-039-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility issu
es are expected when upgrading to Struts 2.3.28 - it can happen that some OGNL
expressions stop working because of performing disallowed arithmetic operations
and assignments.</p><h2 id="S2-039-Workaround">Workaround</h2><p>You can try to
use more restrictive RegEx used to clean up action names as below:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+ <div id="ConfluenceContent"><h2
id="S2-039-Summary">Summary</h2>Getter as action method leads to security
bypass<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Who should read
this</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>All Struts 2
developers and users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible manipulation of return result and
bypassing validation</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Upgrade to<span> </span><a
shape="rect" href="version-notes-2329.html">Struts
2.3.29</a>.</p></td></tr><tr><th col
span="1" rowspan="1" class="confluenceTh"><p>Affected Software</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p>Struts 2.3.20 - Struts <span
style="color: rgb(23,35,59);">Struts 2.3.28.1</span></p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Reporter</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p>Takeshi Terada websec02 dot g02
at gmail.com</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4433</p></td></tr></tbody></table></div><h2
id="S2-039-Problem">Problem</h2><p>It is possible to pass a crafted request
which can be used to bypass internal security mechanism and manipulate return
string which can leads to redirecting user to unvalidated location.</p><h2
id="S2-039-Solution">Solution</h2><p>Upgrade to Apache Struts version
2.3.29.</p><h2 id="S2-039-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility issu
es are expected when upgrading to Struts 2.3.29 - it can happen that some OGNL
expressions stop working because of performing disallowed arithmetic operations
and assignments.</p><h2 id="S2-039-Workaround">Workaround</h2><p>You can try to
use more restrictive RegEx used to clean up action names as below:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><constant name="struts.allowed.action.names"
value="[a-zA-Z]*" /></pre>
</div></div><p>Please adjust the RegEx to your action naming pattern, it
should be as narrowed as possible.</p></div>
</div>
Modified: websites/production/struts/content/docs/s2-040.html
==============================================================================
--- websites/production/struts/content/docs/s2-040.html (original)
+++ websites/production/struts/content/docs/s2-040.html Mon Jun 20 05:26:00 2016
@@ -138,7 +138,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><h2
id="S2-040-Summary">Summary</h2>Input validation bypass using existing default
action method.<div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Who should read this</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>All Struts 2 developers and
users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible manipulation of return result and
bypassing validation</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Upgrade to<span> </span><a
shape="rect" href="version-notes-2329.html">Struts 2.3.29</a>.</p></td></t
r><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Affected
Software</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Struts
2.3.20 - Struts <span style="color: rgb(23,35,59);">Struts
2.3.28.1</span></p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Reporter</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Takeshi Terada websec02 dot g02 at
gmail.com</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4431</p></td></tr></tbody></table></div><h2
id="S2-040-Problem">Problem</h2><p>Using existing default method it can be
possible to bypass internal security mechanism and manipulate return string
which can leads to redirecting user to unvalidated location.</p><h2
id="S2-040-Solution">Solution</h2><p>Upgrade to Apache Struts version
2.3.29.</p><h2 id="S2-040-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility i
ssues are expected when upgrading to Struts 2.3.28 - it can happen that some
OGNL expressions stop working because of performing disallowed arithmetic
operations and assignments.</p><h2 id="S2-040-Workaround">Workaround</h2><p>You
can try to use more restrictive RegEx used to clean up action names as
below:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+ <div id="ConfluenceContent"><h2
id="S2-040-Summary">Summary</h2>Input validation bypass using existing default
action method.<div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Who should read this</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>All Struts 2 developers and
users</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Possible manipulation of return result and
bypassing validation</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Medium</p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Upgrade to<span> </span><a
shape="rect" href="version-notes-2329.html">Struts 2.3.29</a>.</p></td></t
r><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Affected
Software</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Struts
2.3.20 - Struts <span style="color: rgb(23,35,59);">Struts
2.3.28.1</span></p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Reporter</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Takeshi Terada websec02 dot g02 at
gmail.com</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>CVE-2016-4431</p></td></tr></tbody></table></div><h2
id="S2-040-Problem">Problem</h2><p>Using existing default method it can be
possible to bypass internal security mechanism and manipulate return string
which can leads to redirecting user to unvalidated location.</p><h2
id="S2-040-Solution">Solution</h2><p>Upgrade to Apache Struts version
2.3.29.</p><h2 id="S2-040-Backwardcompatibility">Backward
compatibility</h2><p>Some backward incompatibility i
ssues are expected when upgrading to Struts 2.3.29 - it can happen that some
OGNL expressions stop working because of performing disallowed arithmetic
operations and assignments.</p><h2 id="S2-040-Workaround">Workaround</h2><p>You
can try to use more restrictive RegEx used to clean up action names as
below:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><constant name="struts.allowed.action.names"
value="[a-zA-Z]*" /></pre>
</div></div><p>Please adjust the RegEx to your action naming pattern, it
should be as narrowed as possible.</p></div>
</div>