Django 发布安全更新:3.2.2、3.1.10 和 2.2.22
根据 我们的安全发布策略,Django 团队发布了 Django 3.2.2、Django 3.1.10 和 Django 2.2.22。这些版本修复了下面详述的严重程度为“中等”的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2021-32052:自以下情况以来存在注入 HTTP 头的可能性URLValidator在 Python 3.9.5+ 上接受输入中的换行符
在 Python 3.9.5+ 上,URLValidator未禁止换行符和制表符。如果您在 HTTP 响应中使用了包含换行符的值,则可能会遭受 HTTP 头注入攻击。Django 本身不受此漏洞影响,因为HttpResponse禁止在 HTTP 头中使用换行符。
此外,URLField表单字段使用URLValidator在 Python 3.9.5+ 上静默删除换行符和制表符,因此只有在表单字段外部使用此验证器时,才有可能将换行符输入到您的数据中。
此问题是由 bpo-43882 修复引入的。
受影响的支持版本
- Django 主分支
- Django 3.2
- Django 3.1
- Django 2.2
解决方案
已将解决此问题的补丁应用于 Django 的主分支以及 3.2、3.1 和 2.2 发布分支。补丁可从以下变更集中获取
已发布以下版本
- Django 3.2.2 (下载 Django 3.2.2 | 3.2.2 校验和)
- Django 3.1.10 (下载 Django 3.1.10 | 3.1.10 校验和)
- Django 2.2.22 (下载 Django 2.2.22 | 2.2.22 校验和)
此版本使用的 PGP 密钥 ID 为 Mariusz Felisiak:2EF56372BA48CD1B。
有关安全报告的常规说明
与往常一样,我们请求您通过私人电子邮件将潜在的安全问题报告给security@djangoproject.com,而不是通过 Django 的 Trac 实例或 django-developers 列表。请参阅 我们的安全策略 以获取更多信息。