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

December 4, 2024

Django 5.1.4 исправляет одну проблему безопасности с высокой степенью серьезности, одну проблему безопасности со средней степенью серьезности и несколько ошибок в версии 5.1.3.

CVE-2024-53907: Возможность отказа в обслуживании в strip_tags()

strip_tags() было бы крайне медленно обрабатывать определенные входные данные, содержащие большие последовательности вложенных неполных HTMLentities. Метод strip_tags() используется для реализации соответствующего шаблонного фильтра striptags, который, таким образом, также уязвим.

strip_tags() теперь имеет верхний предел рекурсивных вызовов HTMLParser перед вызовом исключения SuspiciousOperation.

Помните, что нет абсолютно никакой гарантии того, что результаты strip_tags() будут безопасны для HTML. Поэтому НИКОГДА не помечайте безопасным результат вызова strip_tags(), не экранировав его сначала, например, с помощью django.utils.html.escape().

CVE-2024-53908: Потенциальная SQL-инъекция через HasKey(lhs, rhs) в Oracle

Прямое использование поиска django.db.models.fields.json.HasKey в Oracle было связано с внедрением SQL, если в качестве значения lhs использовались ненадежные данные.

Приложения, использующие поиск по has_key с помощью синтаксиса __, остаются незатронутыми.

Исправления

  • Исправлен сбой в createsuperuser на Python 3.13+, вызванный необработанным OSError, когда не удавалось определить имя пользователя (#35942).
  • Исправлена регрессия в Django 5.1, из-за которой реляционные поля не обновлялись при вызове Model.refresh_from_db() в экземплярах с отложенными полями (#35950).
Вернуться на верх