- Symbolic links to system libraries could be lost rendering Tomcat unusable if a problem occurred during Tomcat start while the RELINK script was running. The event triggering the problem could have been any kind of start interruption, such as closing Tomcat with CTRL+C, driver crash, power outage, and so on. With this update, to provide a workaround for this issue, the RELINK script is called only if explicitly required by the user as the problem is caused by a subordinate utility script, which does not belong to Tomcat.
- When the tomcat server parsed a cookie whose name contained either single- or double-quotes and then passed that cookie name and value to a servlet, any quotes were removed from the cookie name as expected; however, the cookie values were empty. This update corrects the parsing so that single- or double-quotes can be used inside cookie names and the correct cookie values are returned.
- The OPTION request did not return the TRACE method as an allowed method and incorrectly reported TRACE as an allowed method. With this update, the information returned to the OPTION request has been corrected.
- Previously, context.xml files that did not specify the Document Base (docBase) property caused Tomcat to fail on startup with a NullPointerException. With this update, if the docBase property is not defined, it is handled gracefully and the path name to the context is used as docBase. Note that when deploying a context, the docBase attribute is mandatory.
- On IBM S/390 and 64-bit PowerPC architectures, Tomcat Administration Tool terminated unexpectedly and accessing failed with HTTP Status 404 as JSP pre-compilation was disabled. With this update, JSP has been pre-compiled so that compilation at runtime is not needed and Tomcat Administration Tool can be accessed in this scenario.
- When a context was deployed with a web application and the etc/localhost/[webapp].xml file existed, tomcat threw a NullPointerException. With this update, the bug no longer occurs.
- Previously, java.util.logging was not working due to the missing tomcat-juli.jar library in Tomcat. The library has been added and the Tomcat logging works as expected.
- The /etc/init.d/tomcat5 script returned an incorrect exit status when stopped. With this update, the correct exit value is returned on stop.
- It was found that the Java hashCode() method implementation was susceptible to predictable hash collisions. A remote attacker could use this flaw to cause Tomcat to use an excessive amount of CPU time by sending an HTTP request with a large number of parameters whose names map to the same hash value. This update introduces a limit on the number of parameters processed per request to mitigate this issue. The default limit is 512 for parameters and 128 for headers. These defaults can be changed by setting the org.apache.tomcat.util.http.Parameters.MAX_COUNT and org.apache.tomcat.util.http.MimeHeaders.MAX_COUNT system properties.
- It was found that Tomcat did not handle large numbers of parameters and large parameter values efficiently. A remote attacker could make Tomcat use an excessive amount of CPU time by sending an HTTP request containing a large number of parameters or large parameter values. This update introduces limits on the number of parameters and headers processed per request to address this issue. Refer to the CVE-2011-4858 description for information about the org.apache.tomcat.util.http.Parameters.MAX_COUNT and org.apache.tomcat.util.http.MimeHeaders.MAX_COUNT system properties.