11-02-2005, 11:07 AM
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 Afectadas
Se ven afectadas por estas vulnerabilidades 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
Se recomienda actualizar phpBB a la versión 2.0.18: http://www.phpbb.com/downloads.php
Referencias
Alerta original
Secunia
phpBB
Saludos!!...
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 Afectadas
Se ven afectadas por estas vulnerabilidades 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
Se recomienda actualizar phpBB a la versión 2.0.18: http://www.phpbb.com/downloads.php
Referencias
Alerta original
Secunia
phpBB
Saludos!!...
