Django 发布安全更新:3.2.2、3.1.10 和 2.2.22

作者:Mariusz Felisiak 发布于 2021年5月6日

根据 我们的安全发布策略,Django 团队发布了 Django 3.2.2Django 3.1.10Django 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 发布分支。补丁可从以下变更集中获取

已发布以下版本

此版本使用的 PGP 密钥 ID 为 Mariusz Felisiak:2EF56372BA48CD1B

有关安全报告的常规说明

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

返回顶部