Ir al contenido principal

Vulnerabilidades en Django (Septiembre 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


Fuente:
http://unaaldia.hispasec.com/2013/09/vulnerabilidades-en-django.html

Comentarios

Entradas populares de este blog

¿Qué es la ejecución de código arbitrario?

En informática , el término código arbitrario hace referencia a código muy largo que no será interpretado por una aplicación o sistema operativo sino que provocará un desbordamiento de búfer de esa aplicación o sistema operativo lo que hará que el trozo desbordado sea interpretado y/o ejecutado por el sistema bajo unas condiciones más favorables. Es utilizado para realizar ataques. Otra forma más simple de definirlo es que la ejecución de código arbitrario es: Una forma fácil en la que un atacante puede ejecutar "comandos" tan sencillo como pensar en que alguien a distancia esta tecleando comandos que pueden ser desde un inocente mkdir "para hacer directorio" hasta un rm "borrar directorio" o abrir puertos etc para troyanizar el equipo "mantener el acceso". Lo que también es conocido como remote code execution .

Codificación de Datos: Una Guía UTF-8 para PHP y MySQL

Desde toptotal nos cuentan.. "La codificación de Datos" esto creo que es una duda que nos ha surgido en algún punto cuando vamos iniciando en el mundo del desarrollo y es el desconocimiento de los diferentes formatos de codificación tenemos varias opciones pero hoy nos centraremos en el uso de UTF-8 y porque deberías usarlo. Como desarrollador  PHP  o  MySQL , una vez que pasas más allá de los confines de los cómodos conjuntos de caracteres sólo en inglés, te encuentras rápidamente enredado en el maravillosamente y extraño mundo de UTF-8. Una Mirada Rápida UTF-8 Primer Unicode es un estándar de la industria de computación ampliamente utilizado, que define un mapeo completo de valores únicos de códigos numéricos a los caracteres de la mayoría de los conjuntos de caracteres escritos hoy en día, para ayudar con la interoperabilidad de los sistemas y el intercambio de datos.  UTF-8 es una codificación de amplitud variable (variable-width encoding) que puede ...

Las Diez Mejores Reglas De Diseño Front-End Para Desarrolladores

Como desarrolladores Front-End, nuestro trabajo es esencialmente convertir los diseños en realidad a través del código. Comprender y ser competentes en el diseño es un componente importante de esto. Desafortunadamente, entender realmente el diseño de Front-End es más fácil a la hora de decirlo que hacerlo. La codificación y el diseño estético requieren algunos conjuntos de habilidades bastante diferentes. Debido a esto, algunos desarrolladores Front-End no son tan proficientes en el aspecto de diseño como deberían ser y como resultado, su trabajo sufre. Mi objetivo es darte algunas reglas y conceptos fáciles de seguir, desde un  desarrollador Front-End  a otro, que te ayudará a ir desde el inicio hasta el final de un proyecto sin estropear lo que tus diseñadores trabajaron tan duro (o posiblemente incluso permitirte diseñar tus propios proyectos con resultados decentes). Por supuesto, estas reglas no te llevarán de malo a magnífico en el tiempo que toma para leer un artí...