Notas de lanzamiento de Django 4.2.21

7 de mayo de 2025

Django 4.2.21 resuelve un problema de seguridad con severidad «moderada», una falla de pérdida de datos y una regresión en 4.2.20.

Esta versión se construyó utilizando una versión actualizada de setuptools, lo que produce nombres de archivo compatibles con PEP 491 y PEP 625 y resuelve así un aviso de PyPI sobre nombres de archivos de distribución no compatibles. Esta modificación solo afecta al proceso de empaquetado de Django y no impacta el comportamiento de Django.

CVE-2025-32873: Posibilidad de denegación de servicio en strip_tags()

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

La función strip_tags() ahora lanza una excepción SuspiciousOperation si encuentra un número inusualmente grande de etiquetas de apertura no cerradas.

Bugfixes

  • Se resolvió la posibilidad de corrupción de datos en file_move_safe() cuando allow_overwrite=True, donde el contenido sobrante de un archivo previamente mayor podía permanecer después de reemplazar con uno menor debido a la falta de truncación (#36298).

  • Se corrigió una regresión en Django 4.2.20, introducida al solucionar CVE 2025-26699, donde el filtro de plantilla wordwrap no conservaba las líneas vacías entre párrafos después de envolver texto (#36341).