Примечания к выпуску Django 2.0.3 ¶
6 марта 2018 г.
Django 2.0.3 исправляет две проблемы безопасности и несколько ошибок в 2.0.2. Также включены последние переводы строк от Transifex.
CVE-2018-7536: возможность отказа в обслуживании в фильтрах urlize
и urlizetrunc
шаблонах ¶
django.utils.html.urlize()
Функция была очень медленно , чтобы оценить определенные входы из - за катастрофические уязвимости с возвратами в двух регулярных выражениях. urlize()
Функция используется для реализации urlize
и
urlizetrunc
шаблонных фильтров, которые были таким образом уязвимы.
Проблемные регулярные выражения заменяются логикой синтаксического анализа, которая ведет себя аналогичным образом.
CVE-2018-7537: возможность отказа в обслуживании в фильтрах truncatechars_html
и truncatewords_html
шаблонах ¶
Если django.utils.text.Truncator
«s chars()
и words()
методы прошли html=True
аргумент, они были очень медленными , чтобы оценить определенные входы из - за катастрофическую обратное прослеживание уязвимости в регулярном выражении. chars()
И words()
методы используются для реализации
truncatechars_html
и truncatewords_html
фильтров шаблонов, которые были таким образом уязвимыми.
Исправлена проблема с возвратом в регулярном выражении.
Исправления ¶
- Исправлена регрессия, приводившая к сбою срезов и
QuerySet.distinct().order_by()
последующемуcount()
сбою ( # 29108 ). - Приоритет форматам ввода даты, времени и времени без
%f
тайского языка, чтобы исправить виджет выбора времени администратора, отображающий «undefined» ( # 29109 ). - Исправлен сбой с
QuerySet.order_by(Exists(...))
( # 29118 ). - Сделано
Q.deconstruct()
детерминированным с несколькими аргументами ключевого слова ( # 29125 ). Вам может потребоваться изменитьQ
's в существующих миграциях или принять автоматически сгенерированную миграцию. - Исправлена регрессия, при которой происходит
When()
сбой выражения с аргументом списка ( # 29166 ). - Исправлен сбой при использовании
Window()
выражения в подзапросе ( # 29172 ). - Исправлен
AbstractBaseUser.normalize_username()
сбой, еслиusername
аргумент не является строкой ( # 29176 ).