
Un script PoC para demostrar CVE 2025-64458, encontrada en Django, posible DoS en `HttpResponseRedirect`/`HttpResponsePermanentRedirect` en Windows.
Un problema de denegación de servicio (DoS) en las respuestas de redirección de Django permite a un atacante provocar un trabajo excesivo de la CPU durante la normalización de URL al construir respuestas de redirección. En Windows, la normalización Unicode NFKC de Python es particularmente lenta. Como resultado, crear HttpResponseRedirect/HttpResponsePermanentRedirect (o usar django.shortcuts.redirect()) con URLs Unicode muy grandes controladas por el atacante puede causar tiempos de procesamiento patológicos, lo que lleva al agotamiento del hilo de solicitud y a la ralentización/interrupción del servicio.
Este problema es un seguimiento de CVE‑2025‑27556 y afecta específicamente a Windows debido a las características de rendimiento de unicodedata.normalize() en esa plataforma.
next/, o lógica de aplicación que devuelve una redirección usando entrada no confiable).return_toHttpResponseRedirect (302) y HttpResponsePermanentRedirect (301), así como django.shortcuts.redirect().poc.py)A), p. ej., https://AA…/.HttpResponseRedirect(url), lo que desencadena la normalización de URL (iri_to_uri()) y la división (urlsplit()), ejercitando la ruta lenta en Windows.DisallowedRedirect (ver Resumen del Parche), evitando el costoso trabajo de normalización.HttpResponseRedirectBase.__init__:
MAX_URL_LENGTH de django.utils.http.str y lanza DisallowedRedirect si len(redirect_to_str) > MAX_URL_LENGTH antes de llamar a urlsplit().DisallowedRedirect.