---------------------------
PARA LOS INDIOS
---------------------------
===============
phpBB: Ejecución de código arbitrario / SQL injection / Evasión de protección
Se han descubierto vulnerabilidades en phpBB (utilizado para definir y administrar foros de discusión, noticias, etc.), las cuales podrían ser explotadas por un atacante para ejecutar código HTML y PHP arbitrario o efectuar “SQL injection” en un sistema vulnerable.
Resumen
Errores de inicialización de variables podrían ser explotados por un atacante para ejecutar código HTML y PHP arbitrario o efectuar “SQL injection” en un sistema vulnerable.
Versiones Afectada
Estas vulnerabilidades afectan a las versiones de phpBB 2.0.17 y anteriores.
Detalle
1) Errores en la inicialización de variables:
- La variable “error_msg” en la función “usercp_register.php” no es inicializada correctamente, lo cual puede ser utilizado para inyectar código HTML arbitrario.
- La variable “forward_page” en la función “login.php” no es inicializada correctamente, lo cual puede ser utilizado para inyectar código HTML arbitrario.
- La variable “list_cat” en la función “search.php” no es inicializada correctamente, lo cual puede ser utilizado para inyectar código HTML arbitrario.
- La variable “signature_bbcode_uid” en la función “usercp_register.php” no es inicializada correctamente, lo cual puede ser utilizado para efectuar “SQL injection” de sentencias “field=xxx” en queries que operan en tablas de usuario, cuando la opción “magic_quotes_gpc” se encuentra habilitada.
- La variable “signature_bbcode_uid” en la función “usercp_register.php” puede ser utilizada además para inyectar, por ejemplo, el modificador “e” en el primer parámetro de una sentencia “preg_replace()”, lo cual implica que el segundo parámetro será evaluado como código PHP. Como el segundo parámetro es completado enteramente con la firma provista por el usuario, es posible ejecutar cualquier código PHP. Esto puede ser explotado independientemente del seteo de la opción “magic_quotes_gpc”.
2) Vulnerabilidades de evasión:
- En PHP5 (5.0.5 o anteriores) es posible registrar, por ejemplo, la variable global “$foobar” proporcionando una variable GET/POST/COOKIE con el nombre “foobar” pero también proporcionando una variable GPC llamada “GLOBALS[foobar]”. Si la variable es proporcionada de dicha forma, el código previo no tratará de dessetear “foobar” sino $GLOBALS, lo cual evade completamente la protección.
- Cuando la extensión de la sesión no es iniciada por un llamado a “session_start()”, PHP desconoce las variables $_SESSION o $HTTP_SESSION_VARS, lo cual significa que es posible llenarlas con cualquier valor, si “register_globals se encuentra habilitado. Combinado con el hecho que “array_merge()” no funcionará en PHP5, cuando al menos uno de los parámetros no es un arreglo, es posible que un atacante setee HTTP_SESSION_VARS a una cadena, evadiendo toda la protección, ya que “$input” termina vacía.
- Cuando “register_long_array” se encuentra deshabilitada, PHP no desconoce las variables HTTP_*. Esto implica que pueden ser completadas con cualquier contenido, aún no relacionado con las variables globales existentes. En este caso la protección no funciona.
Impacto
El impacto de estas vulnerabilidades es ALTO.
Recomendaciones
Recomendamos actualizar phpBB a la versión 2.0.18:
http://www.phpbb.com/downloads.phpReferencias
Para más información sobre este boletín:
Aviso original:
http://www.hardened-php.net/advisory_172005.75.htmlSecunia:
http://secunia.com/advisories/17366/phpBB:
http://www.phpbb.com/phpBB/viewtopic.php?f=14&t=336756