CVE-2010-4476 Apache Tomcat affected by infinite loop in Double.parseDouble method in Java Runtime Environment
Remote attackers can cause a denial of service in Java applications by sending a crafted string that triggers an infinite loop during double parsing.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2010-4476?
CVE-2010-4476 is a medium-severity denial of service vulnerability in Sun Jdk, published on 17 Feb 2011. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
The Double.parseDouble method in Java Runtime Environment (JRE) in Oracle Java SE and Java for Business 6 Update 23 and earlier, 5.0 Update 27 and earlier, and 1.4.2_29 and earlier, as used in OpenJDK, Apache, JBossweb, and other products, allows remote attackers to cause a denial of service via a crafted string that triggers an infinite loop of estimations during conversion to a double-precision binary floating-point number, as demonstrated using 2.2250738585072012e-308.
Which versions are affected by CVE-2010-4476?
6 open source packages ship an affected version, including org.apache.tomcat:tomcat. It affects 3 products.
| Package | Affected | Fixed in |
|---|---|---|
org.apache.tomcat:tomcat Maven | From 5.5.0 | 5.5.33 |
org.apache.tomcat:tomcat Maven | From 5.5.0 | 5.5.33 |
org.apache.tomcat:tomcat Maven | From 6.0.0 | 6.0.32 |
org.apache.tomcat:tomcat Maven | From 6.0.0 | 6.0.32 |
org.apache.tomcat:tomcat Maven | From 7.0.0 | 7.0.7 |
org.apache.tomcat:tomcat Maven | From 7.0.0 | 7.0.7 |
Linux distribution packages (34)
java-1.6.0-openjdk Red Hat:enterprise_linux:5::server | All versions | 1:1.6.0.0-1.18.b17.el5 |
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:5::server | All versions | 1:1.6.0.0-1.18.b17.el5 |
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:5::server | All versions | 1:1.6.0.0-1.18.b17.el5 |
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:5::server | All versions | 1:1.6.0.0-1.18.b17.el5 |
java-1.6.0-openjdk-javadoc Red Hat:enterprise_linux:5::server | All versions | 1:1.6.0.0-1.18.b17.el5 |
java-1.6.0-openjdk-src Red Hat:enterprise_linux:5::server | All versions | 1:1.6.0.0-1.18.b17.el5 |
tomcat5 Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-admin-webapps Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-common-lib Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-debuginfo Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-jasper Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-jasper-javadoc Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-jsp-2.0-api Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-jsp-2.0-api-javadoc Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-server-lib Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-servlet-2.4-api Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-servlet-2.4-api-javadoc Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
tomcat5-webapps Red Hat:enterprise_linux:5::server | All versions | 0:5.5.23-0jpp.17.el5_6 |
java-1.6.0-openjdk Red Hat:enterprise_linux:6::client | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:6::client | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:6::client | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:6::client | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-javadoc Red Hat:enterprise_linux:6::client | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-src Red Hat:enterprise_linux:6::client | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk Red Hat:enterprise_linux:6::computenode | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:6::computenode | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:6::computenode | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:6::computenode | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-javadoc Red Hat:enterprise_linux:6::computenode | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-src Red Hat:enterprise_linux:6::computenode | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk Red Hat:enterprise_linux:6::server | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:6::server | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:6::server | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:6::server | All versions | 1:1.6.0.0-1.36.b17.el6_0 |
How do I fix CVE-2010-4476?
Upgrade org.apache.tomcat:tomcat to a fixed version for your release line: 5.5.33, 6.0.32 or 7.0.7.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2010-4476 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2010-4476 exists.
Public exploit code: 1 Exploit-DB entry and 1 proofs of concept on GitHub.
Other vulnerabilities in Sun Jdk
Sources
Also known as DSA-2161-1, DSA-2161-2, GHSA-gvgc-rxmh-5hvw, RHSA-2011:0210, RHSA-2011:0211, RHSA-2011:0214 and 6 more.