Si aún te preguntas porque debes actualizar WordPress a la nueva versión, actualmente la 2.8.3, debes saber que las versiones anteriores tienen un fallo de seguridad que puede facilitar que alguien – malintencionadamente – reinicie la contraseña del administrador (sea el nombre de usuario ‘admin’ u otro) aún sin un email válido autorizado.
Es tan sencillo como hacer lo siguiente:
Se envía un cambio de dirección de email o nombre de usuario a través de este formulario:
/wp-login.php?action=lostpassword ;
WordPress envía una confirmación para reiniciarlo a través del típico email:
“
Alguien ha solicitado reiniciar la contraseña del siguiente sitio y usuario.http://DOMAIN_NAME.TLD/wordpress
Username: admin
Para reiniciar tu contraseña visita la siguiente dirección, en caso contrario simplemente ignora este email y no pasará nadahttp://DOMAIN_NAME.TLD/wordpress/wp-login.php?action=rp&key=o7naCKN3OoeU2KJMMsag
”
Si se hace clic en el enlace WordPress reinicia la contraseña de administrador y envía otro email con los nuevos datos de acceso.
Así es como funciona:
wp-login.php:
...[snip]....
line 186:
function reset_password($key) {
global $wpdb;
$key = preg_replace('/[^a-z0-9]/i', '', $key);
if ( empty( $key ) )
return new WP_Error('invalid_key', __('Invalid key'));
$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key));
if ( empty( $user ) )
return new WP_Error('invalid_key', __('Invalid key'));
...[snip]....
line 276:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login';
$errors = new WP_Error();
if ( isset($_GET['key']) )
$action = 'resetpass';
// validate action so as to default to the login screen
if ( !in_array($action, array('logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login')) && false === has_filter('login_form_' . $action) )
$action = 'login';
...[snip]....
line 370:
break;
case 'resetpass' :
case 'rp' :
$errors = reset_password($_GET['key']);
if ( ! is_wp_error($errors) ) {
wp_redirect('wp-login.php?checkemail=newpass');
exit();
}
wp_redirect('wp-login.php?action=lostpassword&error=invalidkey');
exit();
break;
...[snip ]...
Puedes incluso reiniciar la clave de admin enviando un array a la variable $key.
Puedes incluso hacer una prueba de concepto. Solo necesitas el navegador web para reproducirlo:
http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]=
La contraseña se reiniciará sin confirmación alguna.
Da miedo ¿verdad?, pues actualiza coño., pues revisa lo que viene a continuación …
Actualización: esta vulnerabilidad también afecta a la versión 2.8.3 y se puede solucionar como indica Martín:
Abre el fichero wp-login.php y su sustituye esta línea …
if ( empty( $key ) )
por esta otra …
if ( empty( $key ) || is_array( $key ) )
Si por cualquier motivo no te funciona este “hack” prueba a bajar la versión modificada del archivo wp-login.php del trac, con el problema solucionado, como ha hecho Ferticidio.
Esta vulnerabilidad ya la están aprovechando varios indeseables que no tienen nada mejor que hacer así que no te lo tomes a la ligera.
Inicio





Pingback: Bitacoras.com
Pingback: Twitted by PlanetaWP
Pingback: Reinicio de contraseña de admin en WordPress < 2.8.3
Pingback: La blogosfera bajo ataque (Actualizado con solucion al problema) | Ferticidio's
Pingback: Vulnerabilidad Wordpress 2.8.3 y su solución | Tinta Fantasma
Pingback: Forzar reinicio de contraseñas | Summarg
Pingback: Tonta vulnerabilidad en Wordpress « Mundo Binario
Pingback: Bug: Reseteo de contraseña en WordPress 2.8.3 y previas
Pingback: WordPress 2.8.4A | Ayuda WordPress
Pingback: Ya se encuentra disponible WordPress 2.8.4 | SuperUsuario
Pingback: Mas problemas de seguridad en Wordpress 2.8.x | El Blog de Pablo Pando
Pingback: Vulnerabilidad en Wordpress 2.8.x | 2bGeek
Pingback: WordPress reporta falla crítica de seguridad « Gnostopia Hoy
Pingback: Culto Geek » Blog Archive » WordPress 2.8.4 corrigiendo más problemas de seguridad
Pingback: 11 consejos para proteger el área de administración de WordPress | Incubaweb
Pingback: 11 consejos para proteger el área de administración de WordPress : Blogografia
Pingback: 11 maneras de proteger la administración de WordPress | Ayuda WordPress
Pingback: WordPress 2.8.4 — Eddy Ramos blog
Pingback: 11 consejos para proteger el área de administración de WordPress | Youbbie