Django 发布安全更新:2.2.2、2.1.9 和 1.11.21
根据我们的安全发布策略,Django 团队发布了Django 1.11.21、Django 2.1.9 和 Django 2.2.2。这些版本修复了以下详述的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2019-12308:AdminURLFieldWidget XSS 漏洞
由AdminURLFieldWidget生成的“当前 URL”链接在显示时未验证其是否为安全 URL。因此,数据库中存储的未验证值或作为 URL 查询参数有效负载提供的值可能会导致可点击的 JavaScript 链接。
AdminURLFieldWidget现在使用URLValidator验证提供的值,然后再显示可点击链接。您可以通过传递validator_class参数到AdminURLFieldWidget.__init__()来自定义验证器,例如,当使用ModelAdmin.formfield_overrides.
受影响的版本
- Django 主开发分支
- 2.2.2 版本之前的 Django 2.2
- 2.1.9 版本之前的 Django 2.1
- 1.11.21 版本之前的 Django 1.11
针对 CVE-2019-11358(原型污染)修复了捆绑的 jQuery
3.4.0 版本之前的 jQuery,由于jQuery.extend(true, {}, ...)而错误地处理了Object.prototype污染。如果未经消毒的源对象包含可枚举的__proto__属性,它可能会扩展本机Object.prototype.
Django 管理员使用的捆绑版 jQuery 已打补丁,以允许select2库使用jQuery.extend().
受影响的版本
- Django 主开发分支
- 2.2.2 版本之前的 Django 2.2
- 2.1.9 版本之前的 Django 2.1
解决方案
已将解决这些问题的补丁应用于 Django 的主分支和 2.2、2.1 和 1.11 发布分支。补丁可从以下 changeset 获取:
主分支上
2.2 发布分支上
2.1 发布分支上
1.11 发布分支上
已发布以下版本:
- Django 1.11.21 (下载 Django 1.11.21 | 1.11.21 校验和)
- Django 2.1.9 (下载 Django 2.1.9 | 2.1.9 校验和)
- Django 2.2.2 (下载 Django 2.2.2 | 2.2.2 校验和)
这些版本使用的 PGP 密钥 ID 为 Carlton Gibson:E17DF5C82B4F9D00。
关于安全报告的常规说明
与以往一样,我们请求您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。请参阅我们的安全策略,了解更多信息。