Un espacio para los entusiastas del web

Wordpress 2.8.5

Publicado el 20 de Octubre, 2009

Wordpress Logo Si, ya hay otra nueva actualización de Wordpress (2.8.5) que viene a solucionar algunos problemas de seguridad. Tampoco significa que si no actualizas cuanto antes vayan a entrar en tu blog, podrían hacer que tu sitio consuma más recursos de los que debería. De todos modos deberías actualizar, no te quita más de unos minutos.

El problema principal que soluciona esta actualización tiene que ver con los trackbacks y un ataque especial que puede afectar a cualquier blog que una versión anterior a Wordpress 2.8.5. El ataque está explicado a detalle en Desvaríos informáticos (y en mi opinión un tanto exagerado sobre el impacto en la seguridad). Dicho ataque tiene que ver con la función mb_convert_encoding() y de como Wordpress maneja los valores de entrada. Este es el código en donde se utiliza mb_conver_encoding():

if ( function_exists(’mb_convert_encoding’) ) { // For international trackbacks
   $title     = mb_convert_encoding($title, get_option(’blog_charset’), $charset);
   $excerpt   = mb_convert_encoding($excerpt, get_option(’blog_charset’), $charset);
   $blog_name = mb_convert_encoding($blog_name, get_option(’blog_charset’), $charset);
}

El valor de $charset viene de $_POST['charset'] y contiene los juegos de caracteres (separador por coma) que posiblemente se hayan usado en los textos de la petición; no se controla su valor ni le limita su tamaño. El problema viene a ser cuando se utiliza como argumento en mb_convert_encoding(), si se envía una petición donde $title y $charset sean absurdamente grandes (350KB según el ejemplo en Desvaríos informáticos), mb_convert_encoding() haría demasiadas comprobaciones, tomando hasta varios minutos por cada petición.

El impacto obviamente depende de la configuración del servidor y las capacidades de este, pero como la mayoría no tenemos un servidor dedicado, nos dejarán con el servidor atascado. La solución a este problema consiste en limitar $charset para que solo permita indicar un juego de caracteres (al eliminar las comas):

$charset = str_replace( array(',', ' '), '', strtoupper( trim($charset) ) );

Solo queda el caso de si $_POST['charset'] fue definido como un Array (y que Wordpress no lo soluciona explícitamente) ya que mb_convert_encoding() también permite definir la lista de juegos de caracteres de esta forma. Por si acaso, modifiqué el parche de Wordpres incluyendo:

$charset = (string) $_POST['charset'];

Con eso debería cerrarse la puerta a problemas por esa parte. Wordpress 2.8.5 soluciona otros problemas menores que nunca dejan de aparecer, pueden ver la lista completa de cambios y bajar solo los archivos modificados desde Wordpress 2.8.4

¿Te gustó?

¡Sí, me gusta! Le ha gustado a 13 personas
Loading ... Loading ...

Javier ArocheJavier Aroche para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo

Síguenos en: @maestros | Fan page

Comentarios

    1. datorres

      Tengo un problema actualize a la versión 2.8.5 y no puedo subir las imagenes,alguien me puede ayudar.

  1. jose luis

    Muy buen recurso para diseñar paginas web, facil y muy bien desarrollado…

    Responder
  2. Es cierto que el wordpress pres ofrece como una especie de blog pero una pregunta esto de las versiones se puede instalar en cualquier cuenta de hosting

    Responder

Deja tu Comentario

Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.



Acerca de

Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy somos un espacio de apoyo para los entusiastas que participan en proyectos en la red.
Leer más de Maestros del Web