miércoles, 12 de agosto de 2009

Fallo de seguridad en Wordpress permite bloquear el acceso al administrador

Se ha detectado un problema de seguridad en Wordpress que permite a un atacante bloquear el acceso al administrador a través de una simple llamada a un parámetro. Afecta a Wordpress con versiones menor o igual a 2.8.3. La rama 2.7.x no se ve afectada.

WordPress es un sistema de gestión de blogs, que opera en lenguaje PHP y con soporte de base de datos MySQL, y ofrecido a la comunidad bajo licencia GPL. WordPress es uno de los gestores de blogs más extendido en la blogosfera.

El fallo permite en la práctica bloquear el acceso a un administrador de Wordpres, debido a una falta de comprobación en el código y aprovechando la funcionalidad de confirmación de cambio de contraseña. En estos momentos, http://wordpress.org/ permite ya la descarga de la versión 2.8.4 que no es vulnerable. La versión 2.8.3 apareció hace apenas una semana precisamente para corregir varios fallos de seguridad.

El parche aplicado añade una simple comprobación. En wp-login.php:

if ( empty( $key ) )

pasa a:

if ( empty( $key ) || is_array( $key ) )

El problema era que si el atacante realizaba el ataque, se podría eludir la comprobación de cambio de contraseña que se envía por email cuando se solicita. Así, se podría enviar una contraseña nueva al correo de la primera cuenta de la base de datos (que suele ser la de administrador) sin necesidad de que el propio administrador confirmara el cambio. Por tanto, se bloquearía temporalmente el acceso al administrador hasta que comprobase la nueva contraseña en su correo. Si el ataque se repite en bucle, el bloqueo podría ser más o menos permanente.


Sergio de los Santos
ssantos@hispasec.com


Más información:

WordPress <= 2.8.3 Remote admin reset password
http://seclists.org/fulldisclosure/2009/Aug/0113.html

No hay comentarios:

Publicar un comentario en la entrada