Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Summary

Excerpt

Remote code exploit on form validation error

Who should read this

All Struts 2 developers

Impact of vulnerability

Remote code execution

Maximum security rating

Critical

Recommendation

Developers should either apply the patch or upgrade XWork immediately

Affected Software

WebWork 2.1 (with altSyntax enabled), WebWork 2.2.0 - WebWork 2.2.5, Struts 2.0.0 - Struts 2.0.8

Non-Affected Software

WebWork 2.0, WebWork 2.1 (with altSyntax disabled, which is the default)

Original JIRA Ticket

WW-2030

Problem

The 'altSyntax' feature of WebWork 2.1+ and Struts 2 allows OGNL expressions to be inserted into text strings and is processed recursively. This allows a malicious user to submit a string, usually through an HTML text field, containing an OGNL expression that will then be executed by the server if the form validation has failed. For example, say we had this form that required the 'phoneNumber' field to not be blank:

...

The OGNL parsing code is actually in XWork and not in WebWork 2 or Struts 2.

Solution

The fixed version of XWork changes the OGNL parsing so that it is not recursive. Therefore, in the example above, the result will be the expected %{1+1}. You can either obtain the latest version of WebWork 2 or Struts 2, which contains the fixed XWork library, or download the fixed XWork library directly. Alternatively, you can obtain the patch and apply it to the XWork source code yourself.