3 de febrero de 2026
Django 4.2.28 resuelve tres problemas de seguridad con severidad «alta», dos problemas de seguridad con severidad «moderada» y uno problema de seguridad con severidad «baja» en la versión 4.2.27.
La función django.contrib.auth.handlers.modwsgi.check_password() para la autenticación mediante mod_wsgi permitía a los atacantes remotos enumerar usuarios a través de un ataque por tiempo.
Este problema tiene una severidad de «baja» según la póliza de seguridad de Django.
Al recibir duplicados de un solo encabezado, ASGIRequest permitía a los atacantes remotos causar una denegación de servicio potencial mediante una solicitud específicamente creada con múltiples encabezados duplicados. La vulnerabilidad resultaba del concatenado repetido de cadenas mientras se combinaban encabezados repetidos, lo que producía un cálculo super-lineal que resultaba en la degradación o el cese del servicio.
Este problema tiene severidad «moderada» según la política de seguridad de Django.
Las consultas raster en campos GIS (sólo implementados en PostGIS) estaban sujetos a la inyección SQL si se utilizaba datos no confiables como índice de banda.
Recuerda que todos los datos de entrada de usuario no confiables deben ser validados antes de su uso.
Este problema tiene severidad «alta» según la política de seguridad de Django.
django.utils.text.Truncator¶django.utils.text.Truncator.chars() y Truncator.words() métodos (con html=True) y los filtros de plantilla truncatechars_html y truncatewords_html fueron objeto de un potencial ataque de denegación de servicio a través de ciertos inputs con un gran número de etiquetas HTML finales no coincidentes, lo que podría causar complejidad en el tiempo cuadrática durante la parsificación de HTML.
Este problema tiene severidad «moderada» según la política de seguridad de Django.
La clase FilteredRelation fue objeto de inyección SQL en alias de columnas mediante caracteres de control, utilizando un diccionario adecuadamente elaborado, con expansión de diccionario, como los **kwargs pasados a QuerySet.annotate(), aggregate(), extra(), values(), values_list() y alias().
Este problema tiene severidad «alta» según la política de seguridad de Django.
QuerySet.order_by y FilteredRelation¶El método QuerySet.order_by() fue objeto de inyección SQL en alias de columnas que contenían puntos cuando el mismo alias era, utilizando un diccionario adecuadamente elaborado, con expansión de diccionario, utilizado en la clase FilteredRelation.
Este problema tiene severidad «alta» según la política de seguridad de Django.
may 31, 2026