domingo, 9 de enero de 2011

Corregido el fallo de la "constante" en PHP

PHP ha publicado la versión 5.3.5 (5.2.17 para la rama 5.2) que corrige un fallo que podría causar una denegación de servicio a través de múltiples vectores.

PHP es un popular lenguaje de programación de código abierto usado principalmente en la creación de sitios y aplicaciones web.

El error reside en la conversión de cierta constante flotante desde una cadena.

Por ejemplo:

$var = (double)"2.2250738585072011e-308";

Esta conversión hace que PHP haga un consumo excesivo de ciclos de la CPU causando que el proceso deje de responder.

La vulnerabilidad es particularmente significativa debido a que puede ser provocada en cualquier contexto que involucre la entrada de datos y su posterior conversión a 'double'.

El fallo, localizado en la función 'zend_strtod', solo afecta a ciertas compilaciones de 32 bits para la arquitectura x86. A su vez está relacionado con un fallo en la arquitectura de la FPU x87.

La vulnerabilidad tiene asignado el CVE-2010-4645 y fue informada por Rick Regan.


David García
dgarcia@hispasec.com


Más información:

PHP Hangs On Numeric Value 2.2250738585072011e-308
http://www.exploringbinary.com/php-hangs-on-numeric-value-2-2250738585072011e-308/

Bug #53632 PHP hangs on numeric value 2.2250738585072011e-308
http://bugs.php.net/53632

No hay comentarios:

Publicar un comentario en la entrada