Se han publicado recientemente nuevas versiones de PHP (versiones 5.2.14 y
5.3.3) que solucionan múltiples problemas de seguridad, que podrían permitir
evitar restricciones de seguridad, provocar denegaciones de servicio,
obtener información sensible o comprometer los sistemas afectados.
PHP es un lenguaje interpretado de propósito general ampliamente usado,
que está diseñado para desarrollo web y puede ser embebido dentro de
código HTML. PHP está orientado a la creación de páginas web dinámicas,
ejecutándose en un servidor web (server-side scripting), de forma que
primero se toma el código en PHP como entrada y se devuelven las páginas
web como salida.
Los fallos están relacionados con errores de
diseño, desbordamientos de búfer, errores de validación de entradas, y
afectan a funciones como «shm_put_var()», XOR operator,
«ArrayObject::uasort()», «parse_str()», «pack()», «strchr()», «strstr()»,
«substr()», «chunk_split()», «strtok()», «addcslashes()», «str_repeat()»,
«trim()», «addcslashes()», «fnmatch()», «substr_replace()», extensión
sqlite, extensión phar, «mysqlnd_list_fields», «mysqlnd_change_user» y
mysqlnd.
De todos estos errores sólo se han asignado cuatro CVEs. Dos
comunes en ambas versiones y uno especifico para cada una de ellas; un total
de tres fallos (con CVE asignado) por versión.
CVE-2010-2225:
Esta vulnerabilidad fue anunciada en la conferencia SyScan’10 de
Singapore y posteriormente publicada en «el mes de los fallos en PHP».
Este fallo se provoca cuando se llama a la función «unserialize» con un
objeto «SplObjectStorage». La función «unserialize» no filtra adecuadamente
los datos al cargar el objeto. Esto podría permitir a un atacante remoto
ejecutar código arbitrario y obtener información sensible. Para la versión
5.2.x solo son vulnerables la versiones de 32 bits. El impacto puede
mitigarse con el modulo «Suhosin» pero sigue siendo vulnerable.
CVE-2010-0397:
Este error había sido publicado por Debian en marzo.
Es causado por no procesar correctamente los datos del primer parámetro de
la función «xmlrpc_decode_request». Este error en el modulo «xmlrpc» puede
provocar una referencia a puntero nulo. Un atacante remoto podría aprovechar
este fallo para causar una denegación de servicio a través de una llamada a
«xmlrpc_decode_request» especialmente manipulada. Existe una prueba de
concepto que permite explotar esta vulnerabilidad.
En la versión
5.3.3 se ha solucionada un error (CVE-2010-2531) en la función «var_export»
que podría permitir la fuga de información si ocurre un error grave. El
fallo se debe a que los datos se van imprimiendo durante el transcurso de la
función en vez de esperar al final para imprimir todo el contenido. Para
solucionar esto se ha creado una variable de tipo «smart_str» donde se aloja
el texto para imprimirlo tras comprobar que no hay errores.
En la
versión 5.2.14 se ha solucionada un error (CVE-2010-2484) en la función
«strrchr». Esta función no valida correctamente el valor del parámetro
«$haystack». Un atacante remoto podría utilizar esto para obtener
información de la memoria.
Las nuevas versiones se encuentran
disponibles para descarga desde:
http://www.php.net/downloads.php
Tomado de Hispasec