Django 发布安全更新:3.2.4、3.1.12 和 2.2.24

作者:Carlton Gibson 发表于 2021年6月2日

根据我们的安全发布策略,Django 团队发布了Django 3.2.4Django 3.1.12Django 2.2.24。这些版本解决了以下详述的安全问题。我们鼓励所有 Django 用户尽快升级。

CVE-2021-33203:通过 admindocs 潜在的目录遍历admindocs

工作人员可以使用admindocs TemplateDetailView视图来检查任意文件的是否存在。此外,如果(且仅当)开发人员自定义了默认的 admindocs 模板来显示文件内容,则不仅会显示文件是否存在,还会显示文件内容。

作为缓解措施,现在应用了路径清理,只能加载模板根目录中的文件。

根据 Django 安全策略,此问题的严重性较低。

感谢 CodeQL Python 团队的 Rasmus Lerchedahl Petersen 和 Rasmus Wriedt Larsen 报告此问题。

CVE-2021-33571:由于验证器接受 IPv4 地址中的前导零,可能存在不确定的 SSRF、RFI 和 LFI 攻击

URLValidator, validate_ipv4_address()validate_ipv46_address()没有禁止八进制文字中的前导零。如果使用了此类值,则可能会遭受不确定的 SSRF、RFI 和 LFI 攻击。

validate_ipv4_address()validate_ipv46_address()在 Python 3.9.5+ 上不受验证器影响。

根据 Django 安全策略,此问题的严重性为中等。

受影响的支持版本

  • Django 主分支
  • Django 3.2
  • Django 3.1
  • Django 2.2

解决方案

已将解决此问题的补丁应用于 Django 的主分支和 3.2、3.1 和 2.2 发布分支。这些补丁可以从以下变更集中获取。

CVE-2021-33203

CVE-2021-33571

已发布以下版本

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

关于安全报告的一般说明

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

返回顶部