Примечания к выпуску Django 5.0.8¶
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 подвергались потенциальной атаке типа «отказ в обслуживании» через определенные входные данные с очень большим количеством символов Юникода.
CVE-2024-42005: потенциальное внедрение SQL в QuerySet.values() и values_list().¶
Методы QuerySet.values() и values_list() в моделях с JSONField подвергались SQL-инъекции в псевдонимы столбцов через созданный объектный ключ JSON в качестве переданного *arg.
Исправления¶
Добавлена отсутствующая проверка для «UniqueConstraint(nulls_distinct=False)» при использовании «*выражений» (#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 с выходным полем DateField или DateTimeField (:ticket:35628).
Исправлена ошибка в Django 5.0, которая приводила к сбою проверки ограничений или некорректному возникновению ошибок проверки для ограничений, ссылающихся на поля с использованием
Field.db_default(#35638).Исправлен сбой в Django 5.0 при сохранении модели, содержащей FileField с набором db_default (#35657).