Примечания к выпуску 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).