CVE-2010-4476 Apache Tomcat affected by infinite loop in Double.parseDouble method in Java Runtime Environment

Medium 5.0 Published Updated

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.

PackageAffectedFixed in
org.apache.tomcat:tomcat MavenFrom 5.5.05.5.33
org.apache.tomcat:tomcat MavenFrom 5.5.05.5.33
org.apache.tomcat:tomcat MavenFrom 6.0.06.0.32
org.apache.tomcat:tomcat MavenFrom 6.0.06.0.32
org.apache.tomcat:tomcat MavenFrom 7.0.07.0.7
org.apache.tomcat:tomcat MavenFrom 7.0.07.0.7
Linux distribution packages (34)
java-1.6.0-openjdk Red Hat:enterprise_linux:5::serverAll versions1:1.6.0.0-1.18.b17.el5
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:5::serverAll versions1:1.6.0.0-1.18.b17.el5
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:5::serverAll versions1:1.6.0.0-1.18.b17.el5
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:5::serverAll versions1:1.6.0.0-1.18.b17.el5
java-1.6.0-openjdk-javadoc Red Hat:enterprise_linux:5::serverAll versions1:1.6.0.0-1.18.b17.el5
java-1.6.0-openjdk-src Red Hat:enterprise_linux:5::serverAll versions1:1.6.0.0-1.18.b17.el5
tomcat5 Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-admin-webapps Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-common-lib Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-debuginfo Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-jasper Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-jasper-javadoc Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-jsp-2.0-api Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-jsp-2.0-api-javadoc Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-server-lib Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-servlet-2.4-api Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-servlet-2.4-api-javadoc Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
tomcat5-webapps Red Hat:enterprise_linux:5::serverAll versions0:5.5.23-0jpp.17.el5_6
java-1.6.0-openjdk Red Hat:enterprise_linux:6::clientAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:6::clientAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:6::clientAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:6::clientAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-javadoc Red Hat:enterprise_linux:6::clientAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-src Red Hat:enterprise_linux:6::clientAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk Red Hat:enterprise_linux:6::computenodeAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:6::computenodeAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:6::computenodeAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:6::computenodeAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-javadoc Red Hat:enterprise_linux:6::computenodeAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-src Red Hat:enterprise_linux:6::computenodeAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk Red Hat:enterprise_linux:6::serverAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-debuginfo Red Hat:enterprise_linux:6::serverAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-demo Red Hat:enterprise_linux:6::serverAll versions1:1.6.0.0-1.36.b17.el6_0
java-1.6.0-openjdk-devel Red Hat:enterprise_linux:6::serverAll versions1:1.6.0.0-1.36.b17.el6_0

Products include Sun Jdk, Sun Jre, Sun Sdk.

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.

All Sun Jdk vulnerabilities

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.

Is CVE-2010-4476 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free