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!

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.
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.
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.
 
Archivado bajo:
Click en cada una para obtener más artículos
Contenido relacionado
 








August 11th, 2009 at 4:36 pm
Gracias Arturo! Solucionado en mi blog
August 11th, 2009 at 9:36 pm
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.
August 11th, 2009 at 11:45 pm
Muy bueno el dato, gracias por publicarlo aquí y rápidamente. Saludos
August 12th, 2009 at 12:53 am
Esta de lujo el tip! Ya lo implemente en mis blogs.
August 12th, 2009 at 2:09 am
ManuelC, estoy contigo! Fue lo primero que pensé…
August 12th, 2009 at 8:57 am
Gracias che! Por suerte no me afecto, pero pude enterarme, y ya actualizé.
August 12th, 2009 at 9:32 am
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
August 12th, 2009 at 9:35 am
Lo más sencillo para actualizar de versión sería usar el plugin ese que permite la actualización automática, no?.
August 12th, 2009 at 10:41 am
Excelente Arturo, ese se que es un buen truco!
Noticia subida a http://www.enlazala.com
Saludos…
August 12th, 2009 at 3:01 pm
@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
August 12th, 2009 at 3:02 pm
@Elías: Jaja, era la única manera de mostrar lo riesgoso de todo el asunto
August 14th, 2009 at 12:03 am
@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