Django 2.0.3 发行说明 — Django 文档
来自菜鸟教程
Django/docs/3.1.x/releases/2.0.3
Django 2.0.3 发行说明
2018 年 3 月 6 日
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
的 chars()
和 words()
方法通过 html=True
参数,由于在正则表达式。 chars()
和 words()
方法用于实现 truncatechars_html
和 truncatewords_html
模板过滤器,因此容易受到攻击。
正则表达式中的回溯问题已修复。
错误修正
- 修复了导致切片
QuerySet.distinct().order_by()
后跟count()
崩溃的回归 (:ticket:`29108`)。 - 优先考虑没有
%f
的泰语语言环境的日期时间和时间输入格式,以修复显示“未定义”的管理时间选择器小部件 (:ticket:`29109`)。 - 修复了
QuerySet.order_by(Exists(...))
(:ticket:`29118`) 的崩溃问题。 - 使
Q.deconstruct()
具有多个关键字参数的确定性 (:ticket:`29125`)。 您可能需要修改现有迁移中的Q
,或接受自动生成的迁移。 - 修复了带有列表参数的
When()
表达式崩溃的回归 (:ticket:`29166`)。 - 修复了在子查询 (:ticket:`29172`) 中使用
Window()
表达式时崩溃的问题。 - 如果
username
参数不是字符串 (:ticket:`29176`),则修复了AbstractBaseUser.normalize_username()
崩溃。