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