Gravatar de Armonth

WordPress 2.1, 2.0.x y bug de inyección SQL: soluciones

El bug que comenté hace casi 24 horas para WordPress 2.1 parece ser que también afecta a la rama 2.0 de WordPress.

El ticket (con exploit incluido) es el #4322 Sql injection blind fishing exploit.

El bug está arreglado en WordPress 2.2 y lo estará en 2.0.11 (que será lanzada en muy breve tiempo) pero vamos a arreglarlo manualmente porque es demasiado fácil de usar.

El fichero a editar en 2.0.x es el wp-includes/pluggable-functions.php, la línea 121 que corresponde a “return $userdata” (única coincidencia en el fichero), en WordPress 2.1.x es lo mismo pero el fichero se llama pluggable.php y después de esa línea se debe añadir una línea para que quede así (ver Changeset 5442):

   if ( $userdata ) 
        return $userdata; 

   $user_login = $wpdb->escape($user_login);

El bug al afectar a la rama 2.1 (no actualizados) y a la 2.0.x (los que pensábamos que estábamos libres) y obtener los hash de usuarios es muy peligroso así que pido la máxima difusión a esta información o vamos a ver caer blogs como moscas.

18 Comentarios (feed)

  1. Gravatar de Agamum Agamum nos comenta:

    Me parece que te has colado en el título y en la primera línea del post… (2.2 = 2.1)

    Jueves, 24 de Mayo/2007 @ 0:22

  2. Gravatar de Armonth Armonth nos comenta:

    Cierto, corregido :P

    Jueves, 24 de Mayo/2007 @ 0:58

  3. Gravatar de Dale al Teclado Dale al Teclado nos comenta:

    Gracias por la solución, Armonth. Una cosa: actualiza el Post2Notame a la versión 1.1 para que no envíes un aviso al Notame cada vez que actualices un post, sino sólo al publicarlo la primera vez.

    Mira: http://meneame.net/notame/armonth ;)

    Jueves, 24 de Mayo/2007 @ 1:22

  4. Gravatar de Armonth Armonth nos comenta:

    Dale al Teclado: mira, ya sabia yo que se me olvidaba algo estos días xD

    Jueves, 24 de Mayo/2007 @ 2:31

  5. Gravatar de Angeles Angeles nos comenta:

    Mil gracias por la información.

    Jueves, 24 de Mayo/2007 @ 3:12

  6. Gravatar de MarioFX MarioFX nos comenta:

    Gracias por la data Armonth.

    Jueves, 24 de Mayo/2007 @ 6:25

  7. Gravatar de ~aKira~ ~aKira~ nos comenta:

    Lo mismo: gracias por la info. Y sí, van a caer como moscas, igual que cuando lo del phpBB 2.0.12

    Jueves, 24 de Mayo/2007 @ 14:25

  8. Gravatar de Daniel Daniel nos comenta:

    Hola,

    yo uso la 2.0.4, y en la sección comentada tengo esto:

    $user_login = sanitize_user( $user_login );

    if ( empty( $user_login ) )
    return false;

    $userdata = wp_cache_get($user_login, ‘userlogins’);
    if ( $userdata )
    return $userdata;

    No me queda muy claro cómo debería retocarlo… alguna pista?

    Gracias miles :)

    Jueves, 24 de Mayo/2007 @ 14:52

  9. Gravatar de Armonth Armonth nos comenta:

    Akira refrescame la memoria porfa :D

    Daniel: lo primero actualizate a 2.0.11 RC1 a lo mínimo, que con la 2.0.4 por mucho que arregles seguirás teniendo fallos de seguridad…

    Lo segundo es que después de return $userdata; deberías tener la siguiente línea para que esté parcheado:

    $user_login = $wpdb->escape($user_login);

    Jueves, 24 de Mayo/2007 @ 15:11

  10. Gravatar de luigix luigix nos comenta:

    Gracias por la info !
    Ya lo he corregido.

    Jueves, 24 de Mayo/2007 @ 15:52

  11. Gravatar de Daniel Daniel nos comenta:

    muchas gracias :)

    Jueves, 24 de Mayo/2007 @ 15:53

  12. Gravatar de Armonth Armonth nos comenta:

    De nada a todos ;)

    Jueves, 24 de Mayo/2007 @ 16:32

  13. Gravatar de Dana Dana nos comenta:

    uff, que susto, menos mal. Millones gracias, ya lo he arreglado .

    Jueves, 24 de Mayo/2007 @ 19:06

  14. Gravatar de ~aKira~ ~aKira~ nos comenta:

    Akira refrescame la memoria porfa :D

    Me refiero a la vulnerabilidad en phpBB 2.0.12 y anteriores que tuvo en jaque a la mayoría de los foros de entonces (aún no había SMF). No fue un caso de SQL Injection, pero el paralelismo es evidente. Sólo había que modificar una cookie para acceder como admin. Y el caso es que aún hay algún foro despistado por ahí (muy pocos y con tiempo sin actualizar, y la mayoría de ellos ya OWNED) que sigue usando una versión tan antigua.

    http://foro.elhacker.net/index.php/topic,59840.0.html

    Jueves, 24 de Mayo/2007 @ 19:49

  15. Gravatar de Armonth Armonth nos comenta:

    Ajam… sí sí, ya recuerdo :D, gracias.

    Un saludo

    Jueves, 24 de Mayo/2007 @ 21:51

  16. Gravatar de Carmen Carmen nos comenta:

    Muchas gracias, al principio opté por actualizar el script, pero el sistema de widgets de la nueva versión se peleó con el sistema de módulos de la plantilla y tampoco compatibilizaba la mayoría de los plugins, con todo lo que eso conlleva (subir la copia guardada)…….. y todo porque no había leído antes tu post, que realmente ha sido lo que ha salvado la situación.

    Jueves, 24 de Mayo/2007 @ 23:08

  17. Gravatar de Nikko Nikko nos comenta:

    Corrigiendo lo q dices en la versión 2.1 ya no necesito actualizar…o de todas formas hay q actualizar a otra versión ?

    Viernes, 25 de Mayo/2007 @ 7:20

  18. Gravatar de Armonth Armonth nos comenta:

    En principio ya está Nikko.

    Viernes, 25 de Mayo/2007 @ 17:07

No seas tímido, da tu opinión

Sé respetuoso con los demás, la diferencia de opiniones enriquece la discusión, los comentarios bajo ciertas circunstancias pueden ser moderados y requerir aprobación.