
Un script PoC pour démontrer la CVE 2025-64458, trouvée dans Django, un déni de service potentiel dans `HttpResponseRedirect`/`HttpResponsePermanentRedirect` sous Windows.
Un problème de déni de service (DoS) dans les réponses de redirection de Django permet à un attaquant de déclencher un travail CPU excessif lors de la normalisation d'URL pendant la construction des réponses de redirection. Sous Windows, la normalisation Unicode NFKC de Python est particulièrement lente. Par conséquent, la création de HttpResponseRedirect/HttpResponsePermanentRedirect (ou l'utilisation de django.shortcuts.redirect()) avec des URL Unicode très longues contrôlées par l'attaquant peut provoquer des temps de traitement pathologiques, entraînant l'épuisement des threads de requêtes et un ralentissement/interruption du service.
Ce problème fait suite à CVE-2025-27556 et impacte spécifiquement Windows en raison des caractéristiques de performance de unicodedata.normalize() sur cette plateforme.
nextreturn_toHttpResponseRedirect (302) et HttpResponsePermanentRedirect (301), ainsi que django.shortcuts.redirect().poc.py)A), comme https://AA…/.HttpResponseRedirect(url), ce qui déclenche la normalisation d'URL (iri_to_uri()) et le découpage (urlsplit()), empruntant le chemin lent sous Windows.DisallowedRedirect (voir le résumé du correctif), ce qui empêche le coûteux travail de normalisation.HttpResponseRedirectBase.__init__ :
MAX_URL_LENGTH depuis django.utils.http.str et lève DisallowedRedirect si len(redirect_to_str) > MAX_URL_LENGTH avant d'appeler urlsplit().DisallowedRedirect.