Django 4.2.14 notas de lanzamiento

9 de julio de 2024

Django 4.2.14 resuelve dos problemas de seguridad con severidad «moderada» y dos problemas de seguridad con severidad «baja» en la versión 4.2.13.

CVE-2024-38875: Vulnerabilidad potencial de denegación de servicio en django.utils.html.urlize()

El filtro urlize y el filtro urlizetrunc estaban sujetos a un ataque potencial de denegación de servicio mediante ciertos inputs con un número muy grande de corchetes.

CVE-2024-39329: Enumeración de usuarios a través de la diferencia en el tiempo para los usuarios con contraseñas no utilizables

El método authenticate() permitía a los atacantes remotos enumerar usuarios mediante un ataque de tiempo involucrando solicitudes de inicio de sesión para usuarios con contraseñas no utilizables.

CVE-2024-39330: Potencial de travesía del directorio via Storage.save()

Las clases derivadas de la clase base Storage que sobreescriben el método generate_filename() sin replicar las validaciones de ruta de archivo existentes en la clase padre, permitían una travesía del directorio potencial mediante ciertos inputs al llamar al método save().

Las sub-clases de Storage integradas no estaban afectadas por esta vulnerabilidad.

CVE-2024-39614: Vulnerabilidad potencial de denegación de servicio en get_supported_language_variant()

get_supported_language_variant() estaba sujeta a un ataque potencial de denegación de servicio cuando se utilizaba con cadenas muy largas que contenían caracteres específicos.

Para mitigar esta vulnerabilidad, el código de idioma proporcionado a get_supported_language_variant() ahora se parsea hasta una longitud máxima de 500 caracteres.

Cuando el código de idioma supera los 500 caracteres, ahora se levantará un ValueError si strict es True, o si no hay una variante genérica y strict es False.