Django 1.4.6 release notes

13 de agosto de 2013

Django 1.4.6 corrige un problema de seguridad presente en versiones anteriores de Django en la serie 1.4, así como otro bug.

Este es el sexto lanzamiento de corrección de errores/seguridad en la serie Django 1.4.

Mitigado posible ataque XSS mediante URLs de redirección proporcionadas por el usuario

Django se basa en la entrada del usuario en algunos casos (por ejemplo, django.contrib.auth.views.login(), django.contrib.comments, y i18n) para redirigir al usuario a una URL de «éxito». Las comprobaciones de seguridad para estas redirecciones (es decir, django.utils.http.is_safe_url()) no comprobaron si el esquema es http(s) y como tal permitieron URLs de JavaScript (javascript:…) ser introducidas. Si un desarrollador confiaba en is_safe_url() para proporcionar objetivos de redirección seguros y ponía tal URL en una etiqueta, podría sufrir un ataque XSS. Este bug no afecta a Django actualmente, ya que solo ponemos esta URL en la cabecera de respuesta Location y los navegadores parecen ignorar JavaScript allí.

Bugfixes

  • Se ha corregido un bug poco común con el decorador override_settings(). Si se produce una excepción AttributeError: 'Settings' object has no attribute '_original_allowed_hosts', probablemente está solucionado (#20636).