La Django Software Foundation ha publicado nuevas versiones de las ramas 1.4, 1.5 y 1.6 beta de Django, que solucionan dos vulnerabilidades que permitirían ataques de tipo cross-site scripting.

Django es un entorno de desarrollo de código abierto basado en Python para el desarrollo de sitios web siguiendo el patrón Modelo Vista Controlador. Fue publicado por primera vez en 2005, siendo su última versión estable la 1.5 y encontrándose la 1.6 en fase de desarrollo. 

 
La primera de las vulnerabilidades se encuentra en la interfaz de administración. Desde esta aplicación se permite a los usuarios, previa autenticación, la edición de datos de las aplicaciones y sitios web en desarrollo. 
 
Django aplica por defecto un escape de la salida sobre ciertos campos de aplicación potencialmente inseguros. Sin embargo, los campos de tipo URLField que son usados para almacenar URLs, son tratados como seguros al mostrarlos en esta interfaz. Esto los hace vectores potenciales para realizar ataques cross-site scripting. 
 
El problema aparece principalmente en el sitio de administración, pero puede extenderse a cualquier parte del sitio que haga uso de los widgets que este provee. Para solucionarlo, se ha cambiado el trato por defecto a los campos URLField, pasando a tratarse como contenido inseguro, y aplicando sobre ellos el filtrado. Esta vulnerabilidad ha sido descubierta por Lukasz Langa, y afecta tanto a la rama 1.5 como 1.6. 
 
La segunda vulnerabilidad se encuentra en el sistema ‘POST-redirect-GET’. Este sistema permite pasar como parámetro la URL a la que el usuario va a ser redirigido si el proceso de la vista tiene éxito (por ejemplo, al abrir o cerrar sesión). 
 
Este parámetro es validado mediante la función ‘django.utils.http.is_safe_url’, que comprueba que esté en el mismo dominio y que no sea una cadena maliciosa. Este proceso fue introducido el año pasado a raíz de la vulnerabilidad CVE-2012-3442, de la que informamos en su momento. 
 
Aunque ‘django.utils.http.is_safe_url’ está diseñada para permitir redirecciones solo a esquemas HTTP y HTTPS, se ha descubierto un problema en la forma en la que la función procesa este parámetro, que podría permitir la redirección a otros esquemas, (por ejemplo, mailto: o javascript:). 
 
El fallo podría permitir potencialmente un ataque cross-site scripting, aunque no se ha descubierto de momento un método de explotación. Afecta a las ramas 1.4, 1.5 y 1.6 beta y ha sido descubierta por Nick Bruun. 
Se recomienda a los usuarios que actualicen a las versiones 1.4.6, 1.5.2 y 1.6 beta 2. Las actualizaciones están disponibles a través del repositorio PyPi o la página oficial de Django. 
 
 
Opina sobre esta noticia: 
http://unaaldia.hispasec.com/2013/08/nuevas-versiones-de-django-solucionan.html#comments
 
Más información:
 
Security releases issued
https://www.djangoproject.com/weblog/2013/aug/13/security-releases-issued/
 
Denegaciones de servicio y cross-site scripting en Django 
http://unaaldia.hispasec.com/2012/08/denegaciones-de-servicio-y-cross-site.html
 
 

Fuente:
Francisco López
flopez@hispasec.com
Laboratorio Hispasec
www.hispasec.com

Imagen:
Fotos Digitales Gratis
www.fotosdigitalesgratis.com
 
Logos/Imágenes MR Respectivas Compañías mencionadas en la noticia.
Portal de Seguridad Informática, Tecnología e Internet
Descargas Antivirus/Antimalware
www.antivirusgratis.com.ar