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

July 9, 2024

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

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

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

CVE-2024-39329: Перечисление имен пользователей с разницей во времени для пользователей с неиспользуемыми паролями

Метод authenticate() позволял удаленным злоумышленникам перечислять пользователей с помощью временной атаки, включающей запросы на вход для пользователей с неиспользуемыми паролями.

CVE-2024-39330: Потенциальный обход каталога через Storage.save()

Производные классы базового класса Storage, которые переопределяют generate_filename() без повторения проверки пути к файлу, существующей в родительском классе, допускают потенциальный обход каталога с помощью определенных входных данных при вызове save().

Эта уязвимость не затронула встроенные подклассы Storage.

CVE-2024-39614: Потенциальная уязвимость для отказа в обслуживании в get_supported_language_variant()

get_supported_language_variant() был подвержен потенциальной атаке отказа в обслуживании при использовании с очень длинными строками, содержащими определенные символы.

Чтобы устранить эту уязвимость, код языка, указанный в get_supported_language_variant(), теперь анализируется с максимальной длиной в 500 символов.

Если код языка превышает 500 символов, то теперь будет отображаться ValueError, если strict равно True, или если нет общего варианта и strict равно False.>.

Исправления

  • Исправлена ошибка в Django 5.0, которая приводила к сбою Model.full_clean() в несохраненных экземплярах модели с GeneratedField и некоторыми определенными Meta.constraints (#35560).
Вернуться на верх