已发布 Django 安全版本:4.0.1、3.2.11 和 2.2.26
根据我们的安全版本策略,Django 团队正在发布Django 4.0.1、Django 3.2.11和Django 2.2.26。这些版本解决了下面详细说明的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2021-45115:中的拒绝服务可能性UserAttributeSimilarityValidator
UserAttributeSimilarityValidator评估提交的密码(相对于比较值而言人为地很大)会产生很大的开销。假设可以无限制地访问用户注册,这为拒绝服务攻击提供了一种潜在的途径。
为了减轻这个问题,现在忽略了相对较长的值UserAttributeSimilarityValidator.
感谢 Chris Bailey 的报告。
根据 Django 安全策略,此问题的严重性为“中等”。
CVE-2021-45116:中的潜在信息泄露dictsort模板过滤器
由于利用了 Django 模板语言的变量解析逻辑,dictsort模板过滤器如果传递了合适的密钥,则可能容易受到信息泄露或意外方法调用的攻击。
为了避免这种可能性,dictsort现在使用受限的解析逻辑,不会调用方法,也不会允许对字典进行索引。
提醒一下,所有不受信任的用户输入都应在使用前进行验证。
感谢 Dennis Brinkrolf 的报告。
根据 Django 安全策略,此问题的严重性为“低”。
CVE-2021-45452:通过潜在的目录遍历Storage.save()
Storage.save()如果直接传递了合适的构造的文件名,则允许目录遍历。
感谢 Dennis Brinkrolf 的报告。
根据 Django 安全策略,此问题的严重性为“低”。
受影响的支持版本
- Django 主分支
- Django 4.0
- Django 3.2
- Django 2.2
解决方案
已将解决此问题的补丁应用于 Django 的主分支和 4.0、3.2 和 2.2 版本分支。补丁可从以下更改集获取。
CVE-2021-45115
CVE-2021-45116
CVE-2021-45452
已发布以下版本
- Django 4.0.1 (下载 Django 4.0.1 | 4.0.1 校验和)
- Django 3.2.11 (下载 Django 3.2.11 | 3.2.11 校验和)
- Django 2.2.26 (下载 Django 2.2.26 | 2.2.26 校验和)
这些版本使用的 PGP 密钥 ID 为 Carlton Gibson:E17DF5C82B4F9D00。
关于安全报告的常规说明
与以往一样,我们请求通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。请参阅我们的安全策略,了解更多信息。