Django 2.0.3 发行说明 — Django 文档

来自菜鸟教程
Django/docs/3.0.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() 函数用于实现 urlizeurlizetrunc 模板过滤器,因此容易受到攻击。

有问题的正则表达式被替换为行为类似的解析逻辑。


CVE-2018-7537:truncatechars_html 和 truncatewords_html 模板过滤器中的拒绝服务可能性

如果 django.utils.text.Truncatorchars()words() 方法通过 html=True 参数,由于在正则表达式。 chars()words() 方法用于实现 truncatechars_htmltruncatewords_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() 崩溃。