Django 1.11.23 版本发行说明¶
2019 年 8 月 1 日
Django 1.11.23 修复了 1.11.22 中的安全问题。
CVE-2019-14232: django.utils.text.Truncator
中存在拒绝服务可能性问题。¶
如果 django.utils.text.Truncator
的 chars()
和 words()
方法传递了 html=True
参数,它们在处理某些输入时非常慢,这是由于正则表达式中的灾难性回溯漏洞引起的。chars()
和 words()
方法用于实现 truncatechars_html
和 truncatewords_html
模板过滤器,因此这两个过滤器也存在漏洞。
为了避免潜在的回溯问题,Truncator
使用的正则表达式已经简化。因此,尾部的标点符号可能会有时包含在截断后的输出中。
CVE-2019-14233: strip_tags()
中存在拒绝服务可能性问题。¶
由于底层的 HTMLParser
的行为,django.utils.html.strip_tags()
在处理包含大量嵌套不完整 HTML 实体序列的某些输入时会变得非常慢。strip_tags()
方法用于实现相应的 striptags
模板过滤器,因此这两个过滤器也存在漏洞。
现在,strip_tags()
在删除标签时避免了对 HTMLParser
的递归调用,但当进度停止删除标签但仍存在不完整的 HTML 实体时,它会继续运行。
请记住,strip_tags()
的结果绝对不保证是安全的 HTML。因此,在将 strip_tags()
调用的结果标记为安全之前,绝对不要忘记首先进行转义,例如使用 django.utils.html.escape()
。
CVE-2019-14234: 在 JSONField
/HStoreField
的键和索引查找中存在 SQL 注入可能性。¶
django.contrib.postgres.fields.JSONField
的 键和索引查找
,以及 HStoreField
的 键查找
,都受到了 SQL 注入的影响,使用适当构造的字典,并将其作为传递给 QuerySet.filter()
的 **kwargs
进行字典扩展。
CVE-2019-14235: django.utils.encoding.uri_to_iri()
中存在潜在的内存耗尽问题。¶
如果传递了特定的输入,django.utils.encoding.uri_to_iri()
在重新百分号编码无效的 UTF-8 八位序列时可能会导致显着的内存使用,因为它会发生过多的递归。
现在,uri_to_iri()
在重新百分号编码无效的 UTF-8 八位序列时避免了递归。