Anuncios de lanzamiento de Django 5.1.4

4 de diciembre de 2024

Django 5.1.4 soluciona un problema de seguridad con severidad «alta», un problema de seguridad con severidad «moderada» y varios errores en 5.1.3.

CVE-2024-53907: Posibilidad de denegación de servicio en strip_tags()

La función strip_tags() sería extremadamente lenta para evaluar ciertos inputs que contienen secuencias grandes de entidades HTML incompletas anidadas. El método strip_tags() se utiliza para implementar el filtro de plantilla correspondiente, striptags, que también estaba así vulnerable.

strip_tags() ahora tiene un límite superior en llamadas recursivas a HTMLParser antes de levantar una excepción SuspiciousOperation.

Recuerda que NO se proporciona absolutamente ninguna garantía sobre la seguridad de los resultados de strip_tags(). Por lo tanto, NUNCA marques seguro el resultado de una llamada a strip_tags() sin escaparla primero, por ejemplo con django.utils.html.escape().

CVE-2024-53908: Inyección SQL potencial a través de HasKey(lhs, rhs) en Oracle

El uso directo del lookup django.db.models.fields.json.HasKey en Oracle estaba sujeto a inyección SQL si se utilizaba datos no confiables como valor lhs.

Las aplicaciones que usan el lookup has_key mediante la sintaxis __ están exentas de esta vulnerabilidad.

Bugfixes

  • Se ha fijado una caída en createsuperuser en Python 3.13+ causada por un OSError no gestionado cuando el nombre de usuario no podía ser determinado (#35942).

  • Se ha fijado una regresión en Django 5.1 donde los campos relacionales no se actualizaban cuando se llamaba a Model.refresh_from_db() en instancias con campos diferidos (#35950).