Django 发布安全更新:2.2.2、2.1.9 和 1.11.21

作者:Carlton Gibson 发表于 2019年6月3日

根据我们的安全发布策略,Django 团队发布了Django 1.11.21Django 2.1.9Django 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 发布分支上

已发布以下版本:

这些版本使用的 PGP 密钥 ID 为 Carlton Gibson:E17DF5C82B4F9D00。

关于安全报告的常规说明

与以往一样,我们请求您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。请参阅我们的安全策略,了解更多信息。

返回顶部