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

August 6, 2024

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

CVE-2024-41989: Исчерпание памяти в django.utils.numberformat.floatformat()

Если floatformat получено строковое представление числа в научной нотации с большим показателем степени, это может привести к значительному расходу памяти.

Чтобы избежать этого, десятичные знаки, содержащие более 200 цифр, теперь возвращаются как есть.

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

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

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

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

CVE-2024-42005: Потенциальная SQL-инъекция в QuerySet.values() и values_list()

Методы QuerySet.values() и values_list() в моделях с JSONField были подвергнуты SQL-инъекции в псевдонимы столбцов с помощью созданного объектного ключа JSON в виде переданного *arg.

Исправления

  • Добавлена недостающая проверка для UniqueConstraint(nulls_distinct=False) при использовании *expressions (#35594).
  • Исправлена регрессия в Django 5.0, из-за которой ModelAdmin.action_checkbox могла привести к повреждению HTML-страницы списка изменений администратора при рендеринге экземпляра модели с помощью метода __html__ (#35606).
  • Исправлен сбой при создании модели с ограничениями Field.db_default и Meta.constraints, состоящими из __endswith, __startswith, или __contains запросов (#35625).
  • Исправлена регрессия в Django 5.0.7, которая приводила к сбою в LocaleMiddleware при обработке языкового кода длиной более 500 символов. (#35627).
  • Исправлена ошибка в Django 5.0, приводившая к сбою проверки системы, когда ModelAdmin.date_hierarchy заменялось GeneratedField на output_field из DateField или DateTimeField (#35628).
  • Исправлена ошибка в Django 5.0, из-за которой проверка ограничений либо завершалась сбоем, либо некорректно вызывала ошибки проверки для ограничений, ссылающихся на поля с использованием Field.db_default (#35638).
  • Исправлен сбой в Django 5.0 при сохранении модели, содержащей FileField с набором db_default (#35657).
Вернуться на верх