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