El día de hoy, cuando intenté loggearme a WordPress, obtuve un error, alertándome que el password era incorrecto. Y de hecho, tras revisar mi email, vi que se habían producido pedidos para recuperar / resetear el password.

Lo que sucede, es que se trata de una nueva vulnerabilidad de WordPress que afecta incluso hasta la última versión disponible hasta el día de hoy (la 2.8.3).

Todos pueden resetear una contraseña de cualquier blog en  WordPress, sin necesidad de conocer ni el nombre de usuario, ni el correo electrónico asociado a la cuenta!

Picture 7

Así es, nos afecta a todos.

Quieren probarlo?

Sólo necesitan un navegador web.

Basta que pongan lo siguiente en la barra de direcciones: http://nombrededominio.com/wp-login.php?action=rp&key[]=

Esto, reseteará el password de las cuentas asociadas en WordPress, sin pedir ninguna confirmación.

Si bien no es una manera de ganar acceso al blog, este exploit permite que cualquier persona simplemente deshabilite las cuentas de los usuarios en WordPress, obligándolos a revisar el correo por los passwords generados. Todo un dolor de cabeza.

 

Cómo solucionarlo?

De momento, incluso la versión 2.8.3 –la más reciente- se ve afectada (así que no se sorprendan cuando vean la 2.8.4 antes del fin de semana).

Para solucionarlo de manera temporal, tenemos que abrir los archivos de configuración de WordPress en nuestro servidor, ubicar wp-login.php, dirigirnos a la línea 190 y cambiar

if ( empty( $key ) )

Por

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

 

Una vez hecho esto, vuelvan a probar el exploit, y verán que ya no funciona. Simple!

vía zdnet / wordpress trac

 

 

Bonus Tip: Eliminar el usuario admin

WordPress crea, por defecto, el usuario admin en todos los blogs como el usuario principal. Es decir que en todo el mundo, el nombre de usuario de un blog es conocido por todos.

Esto significa, pues, que resulta bastante vulnerable a un ataque de “fuerza bruta”, donde se intenta averiguar el password con miles de intentos.

Para ayudar a prevenir este tipo de ataques o, al menos, añadir una barrera de seguridad extra, lo que es conveniente es eliminar al usuario “admin” de nuestro blog y crear otro usuario que tenga los mismos privilegios.

Picture 8

Cómo?

Vayan, en el panel de configuración de WordPress, en el menú a la mano izquierda, a “Usuarios”. Ahí verán la opción de añadir uno nuevo.

Aquí verán los datos regulares, como el nombre de usuario, primer nombre, etc. No se olviden de elegir un nombre de usuario difícil de adivinar. Pero definitivamente, cualquier cosa será mejor que “admin”. Además, en la parte inferior, la opción de “Rol”. Asegúrense de elegir “Administrador” en este campo, además de, por supuesto, un password largo y seguro.

 Picture 10

Una vez hecho esto, cierren sesión de su cuenta actual (admin), y entren con la nueva. Ahora, vayan, en el menú, a “Autores y Usuarios”, y cuando vean a Admin, denle click en Delete / Eliminar.

No se preocupen por todos los posts escritos con la cuenta de “Admin”. Verán que pueden fácilmente transferirlos al nuevo usuario que han creado. Sólo asegúrense de no darle “Delete” a los posts / comentarios dejados con dicha cuenta.

Simples tip, pero que ayudará a tener una instalación más segura de WordPress… eso es, hasta que se descubra una nueva vulnerabilidad.

  • Gracias Arturo! Solucionado en mi blog 😉

  • ahahhaha! menos mal lo lei en el foro de wordpress ayer y lo corregi… uno de mis clientes lo jodieron con eso…. pero aqui mi queja:

    Arturo! me imagino que con tus 22,011 Alexa Rank ya muchos webs son victimas del reset del password hahahahaha

    Saludos.

  • Muy bueno el dato, gracias por publicarlo aquí y rápidamente. Saludos

  • Esta de lujo el tip! Ya lo implemente en mis blogs.

  • ManuelC, estoy contigo! Fue lo primero que pensé…

    • @Elías: Jaja, era la única manera de mostrar lo riesgoso de todo el asunto 🙂

  • Gracias che! Por suerte no me afecto, pero pude enterarme, y ya actualizé. 😉

  • Apenas el domingó instalé esta versión y ya salió la 2.8.4… U_u

    De momento cambio la línea en WP-Login.php.

    Gracias por el dato.

    xALUDOx

  • Lo más sencillo para actualizar de versión sería usar el plugin ese que permite la actualización automática, no?.

    • @XnupoX: Desde WordPress 2.7 ya no es necesario el plugin de automatic update, viene incorporado ya en WordPress. Basta con ir a Tools / Upgrade 🙂

  • Excelente Arturo, ese se que es un buen truco!

    Noticia subida a http://www.enlazala.com

    Saludos…

  • @ArturoGoga Mi hosting es gratuito, siempre tuve inconvenientes con la actualización automática (y con el plugin que se usaba en las versiones previas).
    Asi que suelo hacerlo manualmente cada cierto tiempo.
    xALUDOx