Envenenamiento de cabeceras en Django 1.3 y 1.4
Django, framework de desarrollo web basado en Python ha actualizado
las ramas 1.3 y 1.4 para dar solución a una vulnerabilidad que podría,
mediante técnicas de envenenamiento de cabeceras (Header poisoning),
redireccionar a un usuario a un sitio malicioso o incluso el robo de
credenciales.
Para realizar algunas operaciones, Django extrae el nombre del dominio
de la cabecera “Host” enviada. La vulnerabilidad (CVE-2012-4520) reside
en el parser del método django.http.HttpRequest.get_host(), que extrae
esta cabecera “Host” incorrectamente.
Una cabecera válida tendría el siguiente formato:
Host: example.com
Si a Django se le proporciona una petición con esta cabecera manipulada,
como por ejemplo:
Host: example.com:algo@example2.com
Django extraerá y entenderá que el dominio deseado es “example2.com” en
lugar de “example.com”, que es el correcto.
Un caso particular de ataque se produciría en el caso de restablecer la
contraseña del usuario. Un atacante podría simular una petición de nueva
contraseña con la cabecera Host especialmente manipulada, y que a la
víctima le llegase un confirmación (o nueva contraseña) con un texto
similar a “Visite http://example2.com/login para…” en lugar de
aparecer el dominio legítimo. Si este usuario (que en realidad no ha
solicitado nada) picase, introduciría sus datos en otro dominio. Esto
ocurriría tanto en con el gestor de usuarios integrado de Django, o con
cualquier aplicación de este tipo realizada con
Django.http.HttpRequest.get_host.
Además del fallo descrito, se ha actualizado la documentación debido
a la incorrecta descripción del método HttpResponse.set_cookie(),
que podría facilitar ataques XSS en las webs que implementaran
incorrectamente este método. La documentación de Django 1.4, que
argumentaba incorrectamente que el método HttpResponse.set_cookie()
establecía siempre la propiedad HttpOnly para todas las cookies
(propiedad que añade protección adicional ante ataques XSS de scripts
maliciosos). Ahora se advierte que sólo lo hace para las cookies de
sesión.
Se recomienda actualizar a las versiones correspondientes de cada rama,
1.3.4 o a la 1.4.2.
__________
NOTA: Los interesados en información sobre contrato de soporte Asistencia Tecnica de SATINFO y/o licencia de uso/actualizaciones de sus utilidades, contacten con info@satinfo.es
__________
Este blog no se hace responsable de las opiniones y comentarios de los textos en los que se cita la Fuente, ofreciendo su contenido solo para facilitar el acceso a la información del mismo.
Los comentarios están cerrados.