
PoC-скрипт для демонстрации CVE 2025-64458, обнаруженной в Django, потенциальный DoS в `HttpResponseRedirect`/`HttpResponsePermanentRedirect` на Windows.
Проблема отказа в обслуживании (DoS) в ответах-перенаправлениях Django позволяет атакующему вызывать чрезмерную нагрузку на ЦП во время нормализации URL при построении ответов перенаправления. На Windows нормализация Unicode NFKC в Python выполняется особенно медленно. В результате создание HttpResponseRedirect/HttpResponsePermanentRedirect (или использование django.shortcuts.redirect()) с контролируемыми атакующим очень большими Unicode-URL может приводить к патологически долгой обработке, что ведёт к истощению потоков запросов и замедлению/прекращению работы сервиса.
Эта проблема является продолжением CVE‑2025‑27556 и затрагивает в первую очередь Windows из-за характеристик производительности unicodedata.normalize() на этой платформе.
nextreturn_toHttpResponseRedirect (302) и HttpResponsePermanentRedirect (301), а также django.shortcuts.redirect().poc.py)A), например, https://AA…/.HttpResponseRedirect(url), что запускает нормализацию URL (iri_to_uri()) и разделение (urlsplit()), задействуя медленный путь на Windows.DisallowedRedirect (см. сводку патча), что предотвращает дорогостоящую нормализацию.HttpResponseRedirectBase.__init__:
MAX_URL_LENGTH из django.utils.http.str и вызывает DisallowedRedirect, если len(redirect_to_str) > MAX_URL_LENGTH, перед вызовом urlsplit().DisallowedRedirect.