CSIRTCV

Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es

03/05/2011

Desbordamiento de enteros en PHP 5.x

Alexander Gavrun ha publicado en su blog personal un fallo de seguridad que ha descubierto en la función 'phar_parse_tarfile' de PHP 5.

Riesgo: Medio

'phar' es una extensión de PHP concebida para empaquetar aplicaciones PHP y facilitar así su distribución e instalación en otros sistemas. Proporciona además una abstracción para manipular ficheros ZIP y TAR.

El fallo se encuentra en el fichero 'ext\phar\tar.c'. Existe un error de programación que introduce un desbordamiento de enteros durante el manejo de las cabeceras de los ficheros TAR. Un atacante puede manipular el valor 'entry.filename_len' al haber sido asignado después de operar con el resultado de la función 'phar_tar_number' que utiliza como argumento el 'header->size'.

Al llamar a la función 'php_stream_read' se intentaría copiar datos a un buffer que no ha sido previamente reservado, lo que provocaría una denegación de servicio y potencialmente permitiría ejecutar código arbitrario.

Alexander Gavrun ha publicado una prueba de concepto en su blog, codificada en Base64.

Sistemas Afectados:

Extensión 'phar' para PHP 5, versión 1.1.1.

Referencias:

None

Solución:

Hasta el momento php.net no ha publicado ninguna solución oficial.

Se recomienda no procesar con esta función archivos TAR en los que no se confíe.

Notas:

http://www.hispasec.com/unaaldia/4569
http://0x1byte.blogspot.com/2011/04/php-phar-extension-heap-overflow.html
http://www.vupen.com/english/advisories/2011/1105
http://secunia.com/advisories/44335/

Fuente: Hispasec una-al-día

CSIRT-CV