Выпуски безопасности Django: 3.2.2, 3.1.10 и 2.2.22

В соответствии с политикой выпуска безопасности, команда Django выпускает Django 3.2.2Django 3.1.10 и Django 2.2.22. В этих выпусках устранена проблема безопасности со степенью серьезности "умеренная", описанная ниже. Мы рекомендуем всем пользователям Django как можно скорее выполнить обновление.

CVE-2021-32052: возможность внедрения заголовка, поскольку URLValidator принимает символы новой строки во вводе на Python 3.9.5+

В Python 3.9.5+ URLValidator не запрещал переводы строки и табуляции. Если вы использовали значения с символами новой строки в HTTP-ответе, вы могли пострадать от атак путем внедрения заголовка. Сам Django не был уязвим, потому что HttpResponse запрещает новые строки в заголовках HTTP.

Более того, поле формы URLField, которое использует URLValidator, незаметно удаляет новые строки и вкладки в Python 3.9.5+, поэтому возможность ввода новых строк в ваши данные существовала только в том случае, если вы используете этот валидатор вне полей формы.

Эта проблема возникла из-за исправления bpo-43882 .

Затронутые поддерживаемые версии

  • Основная ветка Django
  • Джанго 3.2
  • Django 3.1
  • Django 2.2

Решения

Исправления для решения этой проблемы были применены к основной ветке Django и к веткам выпуска 3.2, 3.1 и 2.2. Патчи могут быть получены из следующих наборов изменений:

Выпущены следующие релизы:

В этом выпуске используется идентификатор ключа PGP: Mariusz Felisiak: 2EF56372BA48CD1B.

Вернуться на верх