Todas las versiones de WordPress, incluidas la 3.0.2 actual y hasta la alpha de WordPress 3.1, están afectadas por una vulnerabilidad «0 day«. Si no has actualizado a WordPress 3.0.2 o la versión alpha de la 3.1 debes hacerlo o eres vulnerable. Se forma mediante la función «do_trackbacks» y, por tanto, permite una inyección SQL. Los atacantes (remotos) pueden ejecutar comandos SQL directamente en tu instalación de WordPress.

Por el momento, no hay nueva actualización disponible que solucione esta vulnerabilidad. Si no quieres actualizar el autor del artículo que la ha descubierto, nos da un parche para pegar en el archivo «comment.php» en la carpeta «wp -includes«.

1. Localiza el código vulnerable

Haz una copia de seguridad del fichero «comment.php». Ábrelo y encontrarás la línea 1723 en WordPress 3.1, o la línea de 1644 en WordPress 3.0.2. Encontrarás algo así:

PHP:

  1. trackback($tb_ping, $post_title, $excerpt, $post_id);
  2. $pinged[] = $tb_ping;
  3. } else {
  4. $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id) );
  5. }
  6. }
  7. }
  8. }

2. Sustituye la cadena vulnerable

Para solucionar la vulnerabilidad solo tienes que sustituir el código anterior por este otro:

PHP:

  1. trackback($tb_ping, $post_title, $excerpt, $post_id);
  2. $pinged[] = $tb_ping;
  3. } else {
  4. –               $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, '$tb_ping', '')) WHERE ID = %d", $post_id) );
  5. +               $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id) );
  6. }
  7. }
  8. }
  9. }

Guarda los cambios y ya estás protegido hasta la siguiente. Yo ya he realizado estos cambios. Si no has actualizado, no tardes.

Visto en Geekeries

Via http://ayudawordpress.com/vulnerabilidad-0-day-en-wordpress/

Related Posts with Thumbnails
Tagged with:  

Comments are closed.

Weboy