
Ein PoC-Skript zur Demonstration von CVE 2025-64458, gefunden in Django, potenzieller DoS in `HttpResponseRedirect`/`HttpResponsePermanentRedirect` unter Windows.
Ein Denial-of-Service-Problem (DoS) in Djangos Weiterleitungsantworten ermöglicht es einem Angreifer, während der URL-Normalisierung bei der Konstruktion von Weiterleitungsantworten übermäßige CPU-Arbeit auszulösen. Unter Windows ist die Unicode-NFKC-Normalisierung von Python besonders langsam. Infolgedessen kann das Erstellen von HttpResponseRedirect/HttpResponsePermanentRedirect (oder die Verwendung von django.shortcuts.redirect()) mit vom Angreifer kontrollierten, sehr großen Unicode-URLs zu pathologischen Verarbeitungszeiten führen, was zur Erschöpfung der Anforderungsthreads und zu Dienstverlangsamung/-ausfall führt.
Dieses Problem schließt an CVE-2025-27556 an und betrifft aufgrund der Leistungsmerkmale von unicodedata.normalize() auf dieser Plattform speziell Windows.
next/-Parameter oder App-Logik, die eine Weiterleitung mit nicht vertrauenswürdiger Eingabe zurückgibt).return_toHttpResponseRedirect (302) und HttpResponsePermanentRedirect (301) sowie django.shortcuts.redirect().poc.py) demonstriertA), z. B. https://AA…/.HttpResponseRedirect(url), was URL-Normalisierung (iri_to_uri()) und Aufteilung (urlsplit()) auslöst und den langsamen Pfad unter Windows beansprucht.DisallowedRedirect abgewiesen (siehe Patch-Zusammenfassung), was die aufwändige Normalisierungsarbeit verhindert.HttpResponseRedirectBase.__init__ hinzu:
MAX_URL_LENGTH aus django.utils.http.str und löst DisallowedRedirect aus, wenn len(redirect_to_str) > MAX_URL_LENGTH, bevor urlsplit() aufgerufen wird.DisallowedRedirect auslösen.