В соответствии с политикой выпуска безопасности, команда Django выпускает Django 3.2.2, Django 3.1.10 и Django 2.2.22. В этих выпусках устранена проблема безопасности со степенью серьезности "умеренная", описанная ниже. Мы рекомендуем всем пользователям Django как можно скорее выполнить обновление.
В Python 3.9.5+ URLValidator
не запрещал переводы строки и табуляции. Если вы использовали значения с символами новой строки в HTTP-ответе, вы могли пострадать от атак путем внедрения заголовка. Сам Django не был уязвим, потому что HttpResponse
запрещает новые строки в заголовках HTTP.
Более того, поле формы URLField
, которое использует URLValidator
, незаметно удаляет новые строки и вкладки в Python 3.9.5+, поэтому возможность ввода новых строк в ваши данные существовала только в том случае, если вы используете этот валидатор вне полей формы.
Эта проблема возникла из-за исправления bpo-43882 .
Исправления для решения этой проблемы были применены к основной ветке Django и к веткам выпуска 3.2, 3.1 и 2.2. Патчи могут быть получены из следующих наборов изменений:
Выпущены следующие релизы:
В этом выпуске используется идентификатор ключа PGP: Mariusz Felisiak: 2EF56372BA48CD1B.