sábado, 8 de abril de 2017

Nuevas versiones de seguridad de Django

La Django Software Foundation ha publicado nuevas versiones de seguridad de las ramas Django 1.10, 1.9 y 1.8, que solucionan dos vulnerabilidades de redirección abierta y un posible cross-site scripting. 

Django es un framework de código abierto basado en Python para el desarrollo de sitios web siguiendo el patrón MVC (Modelo-Vista-Controlador). Fue publicado por primera vez en 2005, y desde entonces su uso ha experimentado un considerable crecimiento entre los desarrolladores. Se compone de una serie de herramientas para facilitar la creación depáginas Web, siguiendo las directrices 'DRY' (Do not repeat yourself – No se repita) evitando redundancias de código y consecuentemente reduciendo tiempo y esfuerzo.

La primera vulnerabilidad, identificada como CVE-2017-7233, debida a que en algunos casos Django confía en los datos introducidos por el usuario (p.ej django.contrib.auth.views.login () e i18n) para redireccionar al usuario a una URL "on success". Los controles de seguridad para estas redirecciones (django.utils.http.is_safe_url ()) consideran "seguras" algunas URLs numéricas (p.ej. http:999999999) cuando no deberían serlo.

También si un desarrollador confía en is_safe_url() para proporcionar una redirección segura y pone esta URL en un enlace, se puede sufrir un ataque cross-site scripting.

Por otra parte, con CVE-2017-7234, otra vulnerabilidad de redirección abierta en django.views.static.serve(). Un atacante podría explotar este tipo de vulnerabilidades  mediante una URL específicamente creada para redireccionar a la víctima a cualquier otro sitio web de forma tranparente y sin notificación.

Django Software Foundation ha publicado las versiones Django 1.10.7, 1.9.13 y 1.8.18 de Django que solucionan las vulnerabilidades. Las actualizaciones están disponibles a desde la página oficial de Django.
Django 1.10.7
Django 1.9.13
Django 1.8.18

También se encuentran disponibles parches para cada problema, disponibles desde hithub o a través del aviso publicado:

Más información:

Django security releases issued: 1.10.7, 1.9.13, and 1.8.18




Antonio Ropero

Twitter: @aropero