1 de febrero de 2018
Django 2.0.2 soluciona un problema de seguridad y varios errores en la versión 2.0.1.
AuthenticationForm¶Una regresión en Django 1.11.8 hizo que AuthenticationForm ejecutara su método confirm_login_allowed() incluso si se introduce una contraseña incorrecta. Esto puede provocar la fuga de información sobre un usuario, dependiendo de los mensajes que confirm_login_allowed() levanta. Si confirm_login_allowed() no está sobrescrito, un atacante puede introducir un nombre de usuario arbitrario y ver si ese usuario ha sido establecido en is_active=False. Si confirm_login_allowed() se sobreescribe, podrían verse detalles más sensibles.
Este problema se ha corregido con la salvedad de que AuthenticationForm ya no puede levantar el error «Esta cuenta está inactiva» si el back-end de autenticación rechaza a los usuarios inactivos (el back-end de autenticación por defecto, ModelBackend, lo hace desde Django 1.10). Este problema se revisará para Django 2.1 ya que una solución para abordar la salvedad probablemente sea demasiado invasiva para incluirse en versiones anteriores.
Se corrige el contenido oculto en la parte inferior de la página «La instalación funcionó correctamente!» para algunos idiomas (#28885).
Se ha corregido la nulificación incorrecta de claves foráneas si un modelo tiene dos claves foráneas al mismo modelo y se elimina el modelo objetivo (#29016).
Se corrige la regresión en el uso de QuerySet.values_list(..., flat=True) seguido por annotate() (#29067).
Se ha corregido una regresión donde un conjunto de consultas que anota con objetos de geometría se cae (#29054).
Se ha corregido una regresión donde contrib.auth.authenticate() se cae si un back-end de autenticación no acepta request y uno posterior lo hace (#29071).
Se ha corregido una regresión donde makemigrations se cae si un directorio de migraciones no tiene un archivo __init__.py (#29091).
Crash fijada cuando se introduce un uuid inválido en ModelAdmin.raw_id_fields (#29094).
may 31, 2026