Un serio problema en WordPress

Si teneis una bitácora gestionada con WordPress 1.2.1 o 1.3a5 mas os vale leer esta entrada, porque existe un problema muy serio en estas versiones que puede causar que WordPress cambie la URI de la bitácora del valor que tiene almacenada en la base de datos a otro valor según HTTP_HOST . REQUEST_URI de forma automática, con los consiguientes problemas que esto origina.

Según Michael Heilemann, de Binary Bonsai, para solucionar el problema basta editar el archivo wp-login.php y eliminar las siguientes líneas:

// If someone has moved WordPress let's try to detect it
if ( dirname('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) != get_settings('siteurl') )
update_option('siteurl', dirname('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) );

Comentarios
  1. Muchas gracias por el aviso. Una aclaración, tengo en pruebas una 1.3a4 y también tenía la vulnerabilidad, tal vez esté en todas las 1.3 a partir del día que sacaron la 1.2.1

    Responder

  2. hombre, logicamente no las he probado todas a ver en cuales estaban esas líneas y cuales no 😛 pero si parece lógico que si están en la 1.2.1 y en la nightly de hace una semana, esté en todas las versiones entre estas

    gracias por el dato

    Responder

  3. ¿Que me vas a contar Zootropo a mi?, si te cuento que hace un par de meses ese mismo problema hizo que mi instalacion de WP petara al pasar de localhost al sitio donde tengo ahora SigT…

    Solucion (para cuando el daño ya esta hecho):

    Modificar manualmente en la tabla wp_options el option_value del option_id 1 y 105 (siteurl y home respectivamente).

    Para los que no conozcan mysql voy a dar el ejemplo cambiando el siteurl y el home (option_id 1 y 105) de una url ficticia a localhost:

    mysql>
    SELECT option_id, option_value FROM wp_options WHERE option_id = 1 || option_id = 105;
    +———–+—————————-+
    | option_id | option_value |
    +———–+—————————-+
    | 1 | http://url_ficticia |
    | 105 | http://url_ficticia |
    +———–+—————————-+
    2 rows in set (0.00 sec)

    mysql>
    UPDATE wp_options SET option_value=”http://localhost/” WHERE option_id = 1;
    UPDATE wp_options SET option_value=”http://localhost/” WHERE option_id = 105;

    Y ya esta, volvemos al primer comando y sale:

    +———–+——————-+
    | option_id | option_value |
    +———–+——————-+
    | 1 | http://localhost/ |
    | 105 | http://localhost/ |
    +———–+——————-+
    2 rows in set (0.00 sec)

    Responder

  4. más sencillo, usa el mismo bug para que la vuelva a cambiar. intenta acceder con la uri que debería ser la correcta y listo.

    Responder

  5. […] blemas. Si tienes WordPress lo mejor será que pases por […]

    Responder

  6. […] cado bajo: General — Zamorate @ 10:24 pm

    Acabo de encontrar un enlace a esteartículo en el que se comenta una vulnerabilidad y ya lo he arreg […]

    Responder

  7. Bug del siteurl automatico
    Para recordarme yo también ya que no me acuerdo nunca de estas cosas por que tengo defectuoso el dispositivo /dev/brain 😉

    No me suele gustar publicar fallos de hace varios meses pero por lo visto fui de los que (casualmente) se enteraron :

    E…

    Responder

Deja un comentario