Notas de lanzamiento de Django 4.2.17

4 de diciembre de 2024

Django 4.2.17 resuelve un problema de seguridad con severidad «alta» y otro problema de seguridad con severidad «moderada» en la versión 4.2.16.

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.