Примечания к выпуску Django 4.0.2¶
1 февраля 2022 года
Django 4.0.2 исправляет две проблемы безопасности со степенью серьезности «средняя» и несколько ошибок в 4.0.1. Также включены последние переводы строк от Transifex, с особым упоминанием болгарского языка (полностью переведен).
CVE-2022-22818: Возможный XSS через тег шаблона {% debug %}
¶
Тег шаблона {% debug %}
не кодировал должным образом текущий контекст, создавая вектор XSS-атаки.
Чтобы избежать этой уязвимости, {% debug %}
больше не выводит информацию, когда параметр DEBUG
имеет значение False
, и обеспечивает правильную экранировку всех контекстных переменных, когда параметр DEBUG
имеет значение True
.
CVE-2022-23833: возможность отказа в обслуживании при загрузке файлов¶
Передача определенных входных данных в многокомпонентные формы могла привести к бесконечному циклу при разборе файлов.
Исправления¶
- Исправлена ошибка в Django 4.0, когда
TestCase.captureOnCommitCallbacks()
мог выполнять обратные вызовы несколько раз (#33410). - Исправлена ошибка в Django 4.0, когда
help_text
в автоматически генерируемых формах (#33419) не отображался HTML. - Исправлена регрессия в Django 4.0, из-за которой на странице отладки технического 404 (#33425) отображалось неправильное имя для представлений, основанных на классах.
- Исправлена регрессия в Django 4.0, которая приводила к неправильному
repr
изResolverMatch
для представлений на основе классов (#33426). - Исправлена регрессия в Django 4.0, которая приводила к сбою
makemigrations
на моделях безMeta.order_with_respect_to
, но с полем с именем_order
(#33449). - Исправлена регрессия в Django 4.0, которая приводила к неправильному расположению
ModelAdmin.radio_fields
в админке (#33407). - Исправлена регрессия дублирующей операции в Django 4.0, которая вызывала сбой миграции при изменении типа первичного ключа для конкретной родительской модели, на которую ссылается внешний ключ (#33462).
- Исправлена ошибка в Django 4.0, которая приводила к сбою
QuerySet.aggregate()
послеannotate()
на агрегатной функции с default (#33468). - Исправлена регрессия в Django 4.0, которая приводила к сбою
makemigrations
при переименовании поля переименованной модели (#33480).