Django 发布安全更新:3.2.4、3.1.12 和 2.2.24
根据我们的安全发布策略,Django 团队发布了Django 3.2.4、Django 3.1.12 和 Django 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
已发布以下版本
- Django 3.2.4 (下载 Django 3.2.4 | 3.2.4 校验和)
- Django 3.1.12 (下载 Django 3.1.12 | 3.1.12 校验和)
- Django 2.2.24 (下载 Django 2.2.24 | 2.2.24 校验和)
这些版本使用的 PGP 密钥 ID 为 Carlton Gibson:E17DF5C82B4F9D00。
关于安全报告的一般说明
与以往一样,我们请求您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。请参阅我们的安全策略以获取更多信息。