
Uno script PoC per dimostrare CVE 2025-64458, trovato in Django, potenziale DoS in `HttpResponseRedirect`/`HttpResponsePermanentRedirect` su Windows.
Un problema di denial-of-service (DoS) nelle risposte di reindirizzamento di Django consente a un attaccante di innescare un eccessivo carico della CPU durante la normalizzazione degli URL quando vengono costruite risposte di reindirizzamento. Su Windows, la normalizzazione Unicode NFKC di Python è particolarmente lenta. Di conseguenza, la creazione di HttpResponseRedirect/HttpResponsePermanentRedirect (o l'uso di django.shortcuts.redirect()) con URL Unicode molto grandi controllati dall'attaccante può causare tempi di elaborazione patologici, portando all'esaurimento dei thread di richiesta e al rallentamento/interruzione del servizio.
Questo problema è un seguito di CVE‑2025‑27556 e colpisce specificamente Windows a causa delle caratteristiche di prestazione di unicodedata.normalize() su quella piattaforma.
next/, o logica dell'app che restituisce un reindirizzamento utilizzando input non fidato).return_toHttpResponseRedirect (302) e HttpResponsePermanentRedirect (301), oltre a django.shortcuts.redirect().poc.py)A), ad esempio https://AA…/.HttpResponseRedirect(url), che innesca la normalizzazione dell'URL (iri_to_uri()) e la suddivisione (urlsplit()), esercitando il percorso lento su Windows.DisallowedRedirect (vedi Riepilogo della patch), impedendo il costoso lavoro di normalizzazione.HttpResponseRedirectBase.__init__:
MAX_URL_LENGTH da django.utils.http.str e solleva DisallowedRedirect se len(redirect_to_str) > MAX_URL_LENGTH prima di chiamare urlsplit().DisallowedRedirect.