viernes, 5 de mayo de 2017

Grave 0-day en WordPress permite restablecer contraseñas

Se ha anunciado un grave 0-day en WordPress que podría permitir a un atacante sin autenticar conseguir el enlace de restablecimiento de contraseña y de esta forma obtener acceso a la cuenta de la víctima.

Wordpress es un sistema de gestión de contenidos enfocado a la creación de blogs desarrollado en PHP y MySQL, ampliamente usado en la comunidad de bloggers debido a su facilidad de uso y sus características como gestor de contenidos. WordPress tiene un porcentaje de uso superior al 27% entre los principales 10 millones de sitios web. A su vez WordPress se sitúa como el sistema más popular de administración de blogs con más de 60 millones de usuarios.

El problema, con CVE-2017-8295, reside en la funcionalidad de reinicio de contraseña que podría permitir a un atacante obtener el enlace de restablecimiento de contraseña sin autenticación previa. Esto se debe a la utilización de datos no fiables de forma predeterminada al crear el correo de restablecimiento de contraseña, que se supone que solo se entrega al propietario de la cuenta.


De esta forma mediante la modificación de la petición http el atacante podrá construir una petición de solicitud de reinicio de contraseña de cualquier usuario. En determinadas configuraciones del servidor web, el atacante podrá enviar un valor de cabecera HTTP_HOST específicamente construido a la página de reinicio de contraseña para modificar los valores de cabeceras de correo SMTP 'From' o 'Return-Path' que se utilizan para enviar el correo electrónico de restablecimiento de contraseña. Si el servidor de correo electrónico del usuario de destino no puede enviar mensajes SMTP al usuario de destino, el correo electrónico de restablecimiento de contraseña se puede devolver a la dirección de correo electrónico del usuario remoto.

Como resultado, el atacante podrá obtener el código de restablecimiento de contraseña. El impacto específico depende del tipo de servidor web, la configuración del servidor web y las condiciones del propio escenario (por ejemplo, el estado del servidor de correo del usuario de destino).

Se ven afectadas todas las versiones de WordPress. Según Dawid Golunski, (@dawid_golunski) el investigador que ha reportado el fallo, comunicó el problema a WordPress repetidas veces desde julio del año pasado sin obtener respuesta. Por lo que finalmente ha decidido hacerlo público a pesar de no existir solución oficial.

Más información:

WordPress Core <= 4.7.4 Potential Unauthorized Password Reset (0day)



Antonio Ropero
Twitter: @aropero