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.
Affects: 7.0.0-7.0.x
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 1066244.
This was first reported to the Tomcat security team on 01 Feb 2011 and
made public on 31 Jan 2011.
Affects: 7.0.0-7.0.6
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 a vulnerable version of JSSE, use the connector attribute
allowUnsafeLegacyRenegotiation. It should be set to
false (the default) to protect against this vulnerability.
The NIO connector prior to 7.0.10 is not vulnerable as it does not
support renegotiation.
The NIO connector is vulnerable from version 7.0.10 onwards if the JSSE
version used is vulnerable. To workaround a vulnerable version of JSSE,
use the connector attribute allowUnsafeLegacyRenegotiation.
It should be set to false (the default) to protect against
this vulnerability.
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.
This was worked-around in
revision 891292.
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 7.0.8.
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.