Django 2.2.2 版本发行说明
2019 年 6 月 3 日
Django 2.2.2 修复了 2.2.1 版本中的一些安全问题和多个 bug 。
CVE-2019-12308 : AdminURLFieldWidget 跨站脚本攻击(XSS)
由 AdminURLFieldWidget
生成的可点击的 “当前 URL” 链接显示了提供的值,而没有将其验证为安全的 URL。因此,存储在数据库中的未经验证的值,或者作为 URL 查询参数有效载荷提供的值,都可能导致可点击的 JavaScript 链接。
现在,在显示可点击链接之前,AdminURLFieldWidget
使用 URLValidator 对提供的值进行验证。您可以通过将 validator_class
关键字参数传递给 AdminURLFieldWidget.__init__()
来自定义验证器,例如在使用 formfield_overrides 时。
修复了捆绑的 jQuery 库中的 CVE-2019-11358 问题:原型污染
jQuery 在 3.4.0 之前处理 jQuery.extend(true, {}, ...)
时存在问题,因为它可能因为 Object.prototype
污染而出错。如果一个未经过清理的源对象包含一个可枚举的 __proto__
属性,它可能会扩展原生的 Object.prototype
。
Django 管理员使用的捆绑版本的 jQuery 已经修补,以允许 select2
库使用 jQuery.extend()
。
漏洞修复
- 修复了 Django 2.2 中的一个回归问题,导致在动态添加的管理内联中停止工作的“显示/隐藏”切换 (#30459)。
- 修复了 Django 2.2 中的一个回归问题,其中如果
Meta.ordering
包含表达式,则废弃消息会导致崩溃 (#30463)。 - 修复了 Django 2.2.1 中的一个回归问题,其中 SearchVector 生成带有多余的
Coalesce
调用的 SQL (#30488)。 - 修复了 Django 2.2 中的一个回归问题,当使用
StatReloader
时,自动重新加载器无法检测到manage.py
文件的更改 (#30479)。 - 修复了在
Subquery
中使用时,带有ordering
参数的 ArrayAgg 和 StringAgg 崩溃的问题 (#30315)。 - 修复了 Django 2.2 中的一个回归问题,当引发具有自定义签名的异常时,自动重新加载器崩溃的问题 (#30516)。
- 修复了 Django 2.2.1 中的一个回归问题,当使用
StatReloader
时,自动重新加载器不必要地多次重新加载翻译文件的问题 (#30523)。