3 de marzo de 2026
Django 5.2.12 resuelve un problema de seguridad con severidad «moderada» y un problema de seguridad con severidad «baja» en 5.2.11. También resuelve un bug relacionado con el soporte para Python 3.14.
URLField mediante normalización Unicode en Windows¶El método URLField del campo de formulario utilizaba el método urlsplit() para determinar si agregar un esquema de URL al valor enviado. En Windows, urlsplit() realiza la normalización NFKC, que puede ser desproporcionadamente lenta para grandes inputs que contienen ciertos caracteres.
URLField.to_python() ahora utiliza un esquema de detección simplificado, evitando la normalización Unicode por completo y restando la validación URL a las capas adecuadas. Como resultado, si bien el espacio en blanco inicial y final sigue siendo eliminado por defecto, caracteres como nuevas líneas, tabuladores y otros caracteres de control dentro del valor ya no son tratados por URLField.to_python(). Cuando se utiliza el validador URL por defecto URLValidator, estos valores seguirán levantando ValidationError durante la validación, pero si dependes de validadores personalizados, asegúrate de que no dependan del comportamiento anterior de URLField.to_python().
Este problema tiene severidad «moderada» según la política de seguridad de Django.
Django utiliza el almacenamiento de sistema de archivos y los backends de caché basados en archivo para controlar las permisiones cuando se crean directorios mediante el proceso umask. En entornos multi-hilo, el cambio temporal de umask de un hilo puede afectar a otros hilos la creación de archivos y directorios, lo que resulta en objetos del sistema de archivos creados con permisos no deseados.
Django ahora aplica las permisiones solicitadas mediante chmod() después de mkdir(), eliminando la dependencia del umask del proceso.
Este problema tiene una severidad de «baja» según la póliza de seguridad de Django.
may 31, 2026