Примечания к выпуску Django 5.1.1

September 3, 2024

Django 5.1.1 исправляет одну проблему безопасности со степенью «средней», одну проблему безопасности со степенью «низкой» и несколько ошибок в версии 5.1.

CVE-2024-45230: Потенциальная уязвимость для отказа в обслуживании в django.utils.html.urlize()

urlize и urlizetrunc были подвержены потенциальной атаке типа «отказ в обслуживании» с использованием очень больших входных данных с определенной последовательностью символов.

CVE-2024-45231: Список адресов электронной почты потенциальных пользователей по статусу ответа на сброс пароля

Из-за сбоев при отправке необработанной электронной почты класс PasswordResetForm позволял удаленным злоумышленникам просматривать электронные письма пользователей, отправляя запросы на сброс пароля и наблюдая за результатами.

Чтобы снизить этот риск, исключения, возникающие при отправке электронного письма со сбросом пароля, теперь обрабатываются и регистрируются с помощью регистратора django.contrib.auth.

Исправления

  • Исправлена регрессия в Django 5.1, которая приводила к сбою Window() при передаче пустой последовательности параметру order_by и сбою Prefetch() для нарезанного набора запросов без упорядочения (#35665)..
  • Исправлена регрессия в Django 5.1, из-за которой новое поле usable_password было включено в BaseUserCreationForm (и дочерние элементы). Был добавлен новый AdminUserCreationForm, включающий это поле, что позволило администратору использовать эту функцию там, где она была задумана (#35678).
  • Исправлено предупреждение об устаревании stacklevel в Model.save() и Model.asave(), чтобы оно корректно указывало на сайт, вызывающий нарушение (#35060).
  • Исправлено предупреждение об устаревании stacklevel при использовании OS_OPEN_FLAGS в FileSystemStorage, чтобы корректно указывать на сайт, вызывающий нарушение (#35326).
  • Исправлено предупреждение об устаревании stacklevel в FieldCacheMixin.get_cache_name(), чтобы корректно указывать на сайт, вызывающий ошибку (#35405).
  • Восстановлена, после регрессии в Django 5.1, возможность переопределять поведение настройки часового пояса и ролей, используемое в методе init_connection_state серверной части PostgreSQL (#35688).
  • Исправлена ошибка в Django 5.1, из-за которой при отображении административных наборов полей регистрировались ошибки поиска переменных (#35716).
Вернуться на верх