Inyección de código en WordPress 2.3.1

Autor: Armonth | El lunes 10 de diciembre del 2007 @ 22:17.

Actualización: Masiosare apunta a que el bug ha sido descartado ya que el parámetro $p pasa por un int(). Antes me tomaba cualquier nota de BlogSecurity como "a menudo alarmista" pero después de esto y alguna otra cosa más han perdido mucha de la credibilidad que pudieran conservar para mí.

El fallo queda de momento, y a falta de un PoC que funcione correctamente, como un posible (y dudoso) problema de revelación de información.

Se ha descubierto un fallo importante en WordPress 2.3.1 que permite inyecciones SQL al añadir el parámetro &p= en una dirección de feed RSS2, el enlace ofrece como prueba de concepto:

http://localhost/path_to_wordpress/?feed=rss2&p=11/**/union/**/select/**/concat(
user_password,char(100),username),
2/**/from/**/wp_users/**/where/**/user_id=1/*

De momento no hay parche, al menos que yo sepa, la única solución pasa por usar algo tipo mod_security y reglas especificas. Se me ocurre (aunque reconozco que habría que probarlo) algo tipo:

SecFilterEngine On   
SecFilterCheckURLEncoding On

SecFilter "?feed=rss2&p="

Como ya digo, no estoy seguro que esto funcione, ahora mismo tengo problemas para hacer funcionar el LAMP y el tiempo muy pero que muy limitado para hacer pruebas. Se agradece cualquier tipo de corrección o solución alternativa.

Comentarios