Denegación de servicio a través de la función "php_dechunk" en PHP 5.3.x

Iniciado por wolfbcn, 5 Mayo 2010, 13:47 PM

0 Miembros y 1 Visitante están viendo este tema.

wolfbcn

Stefan Esser, conocido investigador de seguridad especializado en vulnerabilidades en el lenguaje de programación PHP, ha descubierto un fallo en la última versión publicada.

Se trata de un error de desbordamiento de entero en la función "php_dechunk" de "ext/standard/filters.c" al procesar ciertas peticiones HTTP. Esta función se usa para decodificar fragmentos (chunks) codificados de un flujo HTTP.

La función efectúa una comparación del tamaño del fragmento a decodificar y el búfer reservado, empleando para ello un entero con signo, "chunk_size", miembro de la estructura "_php_chunked_filter_data".

El uso de un entero positivo interpretado como negativo podría provocar la copia de datos, entre memorias intermedias reservadas en el heap, de tamaño entre 2 y 4 Gb, resultando en una corrupción de memoria y provocando que la aplicación deje de responder.

Esto podría permitir a un atacante remoto causar una denegación de servicio a través de peticiones HTTP especialmente manipuladas.

Según Esser, son vulnerables las versiones inferiores de la 5.3.2 a la 5.3 incluidas. No existe parche para esta vulnerabilidad.

David García
  dgarcia@hispasec.com

FUENTE :http://www.hispasec.com/unaaldia/4209
La mayoria pedimos consejo cuando sabemos la respuesta, pero queremos que nos den otra.

dimitrix