The Apache Software Foundation has released Struts 18.104.22.168, a security update for its popular Java Web application development framework that addresses two vulnerabilities, including a critical one that could allow remote attackers to execute arbitrary code on the server.
Struts version 22.214.171.124 has become the "General Availability" release, the designation for the project's highest quality version available to users.
The new release addresses two vulnerabilities that stem from issues in the implementation of the DefaultActionMapper class and its "action:", "redirect:" and "redirectAction:" prefixes in particular.
"In Struts 2 before 126.96.36.199 the information following 'action:', 'redirect:' or 'redirectAction:' is not properly sanitized," the Apache Struts developers said in an advisory. "Since said information will be evaluated as OGNL [Object Graph Navigation Language] expression against the value stack, this introduces the possibility to inject server side code."
Attackers can also manipulate the information following "redirect:" or "redirectAction:" in order to redirect users to an arbitrary location.
In order to fix these two vulnerabilities, the Apache Struts developers have added code that sanitizes the "action:"-prefixed information and have removed support for the "redirect:" and "redirectAction:" prefixes.
Applications that use the retired prefixes will no longer work properly after upgrading to Struts 188.8.131.52 or later versions. The Struts developers recommend replacing them in the code with fixed navigation rules.
The new Struts version also fixes a server path information leakage issue and adds improved input sanitizing for the file upload example.
"After a fileupload action, if the result jsp contains a <s:file> tag the value attribute is filled in with the server path where the file was saved," the developers said. "This discloses file system information about the server."