Django se actualiza para solucionar fallos de seguridad que ocasionarían un DoS e inyección de http
Django es un framework de desarrollo web de código abierto más conocido y utilizado que está escrito en Python, este framework respeta el patrón de diseño conocido como Modelo–vista–controlador. Ahora se han descubierto una serie de fallos de seguridad que ya han sido solucionados en las últimas versiones y que te detallamos a continuación.
Se han identificado tres vulnerabilidades en el framework Django de gravedad media y que ya han sido parcheadas en las últimas versiones del framework, por lo que se recomienda actualizar las versiones utilizadas lo antes posible para que no nos afecten.
Vulnerabilidades en Django
La primera de las tres vulnerabilidades podría ocasionar una denegación de servicio y es debido a una incorrecta gestión de los registros de sesión que se utiliza en «request.session». Esto permitiría a un atacante producir una denegación de servicio al solicitar múltiples sesiones con clave de sesión desconocida. De esta forma un usuario malintencionado podría llenar por completo el almacenamiento de sesión o causar la expulsión de otros usuarios que legítimamente están dentro del sistema. A partir de ahora no se podrán crear sesiones con clave de sesión desconocida, pero sí se podrá crear registros de sesión de claves modificadas. El administrador deberá decidir si quiere registrar estas claves modificadas a los usuarios anónimos. Es importante detallar que los desarrolladores de software de terceros que utilicen esta característica deberán modificar su software por si esta misma vulnerabilidad está presente.
Este fallo de seguridad tiene asignado el identificador CVE-2015-5143.
La segunda vulnerabilidad está relacionada con los validadores «django.core.validators.EmailValidator» ,»django.core.validators.validate_ipv4_address()», «django.core.validators.validate_slug()», y «django.core.validators.URLValidator» que permiten la inclusión de caracteres de nueva línea lo que posibilita la inyección de cabeceras http. Si se utilizan valores con los saltos de línea en una respuesta HTTP o en los encabezados de correo electrónico, podemos sufrir de ataques de inyección de cabecera http.
Este fallo de seguridad tiene asignado el identificador CVE-2015-5144.
La tercera y última vulnerabilidad está relacionada con la función «django.core.validators.URLValidator» en la que se incluyó una expresión regular que con determinadas entradas de datos la ejecución sería extremadamente lenta. En la nueva versión esta expresión regular se ha simplificado y optimizado.
Este fallo de seguridad tiene asignado el identificador CVE-2015-5145.
Versiones Django afectadas
Hay múltiples versiones Django afectadas por estos fallos de seguridad, la rama Django master development y la versión Django 1.8, 1.7 y 1.4 son vulnerables a los dos primeros fallos de seguridad. Asimismo la versión Django 1.7 y la versión Django 1.4 también están afectados por el problema de URL DoS.
Django soluciona los problemas lanzando nuevas versiones
Los desarrolladores de Django han lanzado rápidamente los parches necesarios para solucionar estos fallos de seguridad. Por una parte han solucionado los problemas en la rama de desarrollo (master development brach) para que sirva de base en posteriores versiones, asimismo también se ha lanzado una nueva versión Django 1.8.3 para la rama Django 1.8, Django 1.7.9 para la rama Django 1.7, Django 1.4.21 para la rama Django 1.4.
En la página web oficial de Django tenéis el aviso de seguridad con todos los detalles técnicos de los fallos de seguridad así como los enlaces de descarga a las nuevas versiones del framework.
Os dejamos un artículo donde hablamos de la inyección de código HTML y cómo actúa.