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

  1. Gravatar Agamum:

    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 Armonth:

    Cierto, corregido :P

    Jueves, 24 de Mayo/2007 @ 0:58

  3. Gravatar Dale al Teclado:

    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 Armonth:

    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 Angeles:

    Mil gracias por la información.

    Jueves, 24 de Mayo/2007 @ 3:12

  6. Gravatar MarioFX:

    Gracias por la data Armonth.

    Jueves, 24 de Mayo/2007 @ 6:25

  7. Gravatar ~aKira~:

    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 Daniel:

    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 Armonth:

    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 luigix:

    Gracias por la info !
    Ya lo he corregido.

    Jueves, 24 de Mayo/2007 @ 15:52

  11. Gravatar Daniel:

    muchas gracias :)

    Jueves, 24 de Mayo/2007 @ 15:53

  12. Gravatar Armonth:

    De nada a todos ;)

    Jueves, 24 de Mayo/2007 @ 16:32

  13. Gravatar Dana:

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

    Jueves, 24 de Mayo/2007 @ 19:06

  14. Gravatar ~aKira~:

    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 Armonth:

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

    Un saludo

    Jueves, 24 de Mayo/2007 @ 21:51

  16. Gravatar Carmen:

    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 Nikko:

    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 Armonth:

    En principio ya está Nikko.

    Viernes, 25 de Mayo/2007 @ 17:07

Comentarios cerrados