Una simple pero crítica vulnerabilidad en la versión 2.8.3 de WordPress permite que a través del navegador se pueda resetear el password del administrador, permitiendo entrar y modificar el contenido.
La simplicidad de la vulnerabilidad radica en que para aprovecharla sólo es necesario utilizar el navegador. Es decir, con sólo escribir la siguiente url en la barra de dirección http://www.dominio.com/wp-login.php?action=rp&key[]= (cambiando el “dominio” por el nombre del site) es posible acceder a las opciones para resetear el password de administrador de la página.
Explicado por un experto: “El url del password reset toma el parámetro con el nombre key, pero si este es pasado con un teto arbitrario o vacía da error y no pasa nada. Pero, en cambio, si se incluye el parámetro key[], que es un arreglo vacío, la página del reset de password de WordPress lo toma como válido y le envía el password restablecido al email del admin”.
Existen dos maneras de corregir esta vulnerabilidad:
Acceder al php del WordPress a través de wp-admin.php y en la línea 190 para la versión 2.8.3, ó la línea 169 en versiones anteriores.
Una vez allí, reemplazar
190 if (empty ($key) )
Por
190 if (empty ($key) || is_array ($key))
Esto significa que adicionalmente al valor null siendo pasado en el parámetro si a alguién se le ocurre pasar un arreglo, dará un error también.
Enfoque Seguro