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

1 июля 2021 года

Django 3.2.5 исправляет проблему безопасности со степенью серьезности «высокая» и несколько ошибок в 3.2.4. Также включены последние переводы строк от Transifex.

CVE-2021-35042: Потенциальная SQL-инъекция через несанированный ввод QuerySet.order_by()

Несанированный пользовательский ввод, переданный в QuerySet.order_by(), может обойти предусмотренную проверку ссылок на столбцы в путях, помеченных на устаревание, что приводит к потенциальной SQL-инъекции, даже если выдается предупреждение об устаревании.

В качестве смягчения была восстановлена строгая валидация ссылок на столбцы на время периода обесценивания. Эта регрессия появилась в версии 3.1 как побочный эффект исправления #31426.

Проблема отсутствует в основной ветке, так как устаревший путь был удален.

Исправления

  • Исправлена регрессия в Django 3.2, которая приводила к сбою QuerySet.values_list(…, named=True) после prefetch_related() (#32812).
  • Исправлена ошибка в Django 3.2, которая приводила к сбою миграции на MySQL 8.0.13+ при изменении BinaryField, JSONField или TextField на non-nullable (#32503).
  • Исправлена регрессия в Django 3.2, которая вызывала сбой миграции на MySQL 8.0.13+ при добавлении nullable BinaryField, JSONField или TextField со значением по умолчанию (#32832).
  • Исправлена ошибка в Django 3.2, когда системная проверка аварийно завершалась на модели с недопустимым app_label (#32863).
Вернуться на верх