Low: Denial Of Service
CVE-2012-5568
Sending an HTTP request 1 byte at a time will consume a thread from the
connection pool until the request has been fully processed if using the
BIO or APR/native HTTP connectors. Multiple requests may be used to
consume all threads in the connection pool thereby creating a denial of
service.
Since the relationship between the client side resources and server side
resources is a linear one, this issue is not something that the Tomcat
Security Team views as a vulnerability. This is a generic DoS problem and
there is no magic solution. This issue has been discussed several times
on the Tomcat mailing lists. The best place to start to review these
discussions is the report for
bug
54236.
This was first discussed on the public Tomcat users mailing list on 19
June 2009.
Important: Remote Denial Of Service
CVE-2010-4476
A JVM bug could cause Double conversion to hang JVM when accessing to a
form based security constrained page or any page that calls
javax.servlet.ServletRequest.getLocale() or
javax.servlet.ServletRequest.getLocales(). A specially crafted request
can be used to trigger a denial of service.
A work-around for this JVM bug was provided in
revision 1066315.
This work-around is included in Tomcat 6.0.32 onwards.
This was first reported to the Tomcat security team on 01 Feb 2011 and
made public on 31 Jan 2011.
Affects: 6.0.0-6.0.31
Moderate: TLS SSL Man In The Middle
CVE-2009-3555
A vulnerability exists in the TLS protocol that allows an attacker to
inject arbitrary requests into an TLS stream during renegotiation.
The TLS implementation used by Tomcat varies with connector. The blocking
IO (BIO) and non-blocking (NIO) connectors use the JSSE implementation
provided by the JVM. The APR/native connector uses OpenSSL.
The BIO connector is vulnerable if the JSSE version used is vulnerable.
To workaround this until a fix is available in JSSE, a new connector
attribute allowUnsafeLegacyRenegotiation has been added to
the BIO connector. It should be set to false (the default)
to protect against this vulnerability.
The NIO connector is not vulnerable as it does not support
renegotiation.
The APR/native workarounds are detailed on the
APR/native connector security page.
Users should be aware that the impact of disabling renegotiation will
vary with both application and client. In some circumstances disabling
renegotiation may result in some clients being unable to access the
application.
A workaround was implemented in
revision 881774 and
revision 891292
that provided the new allowUnsafeLegacyRenegotiation
attribute. This work around is included in Tomcat 6.0.21 onwards.
Support for the new TLS renegotiation protocol (RFC 5746) that does not
have this security issue:
- For connectors using JSSE implementation provided by JVM:
Added in Tomcat 6.0.32.
Requires JRE that supports RFC 5746. For Oracle JRE that is
known
to be 6u22 or later.
- For connectors using APR and OpenSSL:
TBD. See
APR/native connector security page.
Important: Directory traversal
CVE-2008-2938
Originally reported as a Tomcat vulnerability the root cause of this
issue is that the JVM does not correctly decode UTF-8 encoded URLs to
UTF-8. This exposes a directory traversal vulnerability when the
connector uses URIEncoding="UTF-8". This directory traversal
is limited to the docBase of the web application.
If a context is configured with allowLinking="true" then the
directory traversal vulnerability is extended to the entire file system
of the host server.
It should also be noted that setting
useBodyEncodingForURI="true" has the same effect as setting
URIEncoding="UTF-8" when processing requests with bodies
encoded with UTF-8.
Although the root cause was quickly identified as a JVM issue and that it
affected multiple JVMs from multiple vendors, it was decided to report
this as a Tomcat vulnerability until such time as the JVM vendors
provided updates to resolve this issue. For further information on the
status of this issue for your JVM, contact your JVM vendor.
A workaround was implemented in
revision 678137
that protects against this and any similar character
encoding issues that may still exist in the JVM. This work around is
included in Tomcat 6.0.18 onwards.