domingo, 15 de septiembre de 2013

Vulnerabilidades en Django

En tan sólo cinco días se han ha publicado dos boletines de seguridad para el framework Django. Solucionan dos vulnerabilidades que afectan a la confidencialidad y disponibilidad del sistema.

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, La última versión estable es la 1.5, encontrándose la versión 1.6 en fase de desarrollo.

La primera vulnerabilidad ha sido descubierta por Rainer Koirikivi y ha sido identificada como CVE-2013-4315. Es debida a un error al no restringir el acceso de la etiqueta para plantilla "ssi" únicamente a los directorios especificados en "TEMPLATE_DIRS". Esto podría permitir el acceso a directorios restringidos a través de un ataque de escalada de directorios.

Por ejemplo, si se utiliza la configuración "ALLOWED_INCLUDE_ROOTS" para incluir algún directorio como "/var/www", podría realizarse un ataque con el siguiente código:

{% ssi '/var/www/../../etc/passwd' %}

Su explotación de forma remota requiere que la plantilla haga uso de la etiqueta "ssi" y que el usuario pueda interactuar con ella y proporcionar la ruta como parámetro de dicha etiqueta.

Tan solo unos días después se ha corregido otra vulnerabilidad con identificador CVE-2013-1443. En esta ocasión se trata de una denegación de servicio, solventada de manera urgente ya que fue publicada antes de reportarla a los desarrolladores del framework.

El problema viene dado por el método por defecto para calcular el hash de las contraseñas (PBKDF2) utilizado por el módulo de autenticación 'django.contrib.auth', que es relativamente costoso de calcular, y la falta de limitación en la longitud de dichas contraseñas. Esto provocaría un excesivo consumo de recursos en el servidor. Un atacante remoto podría causar una denegación de servicio enviando sucesivas peticiones de autenticación con contraseñas de gran tamaño.

Django Software Foundation ha publicado las versiones 1.4.8, 1.5.4, y 1.6 beta 4 de Django que solucionan ambas vulnerabilidades. Se encuentran disponibles para su descarga en la página oficial.

Más información:

Security releases issued: directory traversal with ssi template tag

Security releases issued: denial-of-service via large passwords

Download Django

Index of Packages > Django




Juan José Ruiz



No hay comentarios:

Publicar un comentario en la entrada