Vigil@nce : Java JRE, déni de service via un réel
février 2011 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant peut employer un nombre réel double spécial, afin de
provoquer une boucle infinie dans les programmes Java.
– Gravité : 2/4
– Date création : 02/02/2011
PRODUITS CONCERNÉS
– Java JRE/JDK
– Java JRE/JDK/J2SE
– Java JRE/SDK
– Java JRE/SDK/J2SE
DESCRIPTION DE LA VULNÉRABILITÉ
Le nombre 2.2250738585072011e-308 est le "plus grand nombre double
subnormal", c’est-à-dire 0x0fffffffffffff x 2^-1022 en base 2.
Sur un processeur x86, Java JRE utilise les registres FPU x87 (80
bit), pour trouver bit-après-bit la valeur réelle la plus proche.
Cette boucle s’arrête lorsque le reste est inférieur à la
précision. Cependant, avec le nombre 2.225..., cette condition
d’arrêt n’est jamais vraie (80 bits arrondis en 64 bits), et une
boucle infinie se produit.
Un attaquant peut donc employer un nombre réel double spécial,
afin de provoquer une boucle infinie dans les programmes Java.
L’origine de cette vulnérabilité est la même que
VIGILANCE-VUL-10257.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Java-JRE-deni-de-service-via-un-reel-10321