Django 发布安全更新:4.0.4、3.2.13 和 2.2.28

作者:Mariusz Felisiak 发布于 2022年4月11日

根据我们的安全发布政策,Django 团队发布了Django 4.0.4Django 3.2.13Django 2.2.28。这些版本修复了以下详述的安全问题。我们鼓励所有 Django 用户尽快升级。

Django 2.2 已达到扩展支持的结束时间。最终的安全版本(2.2.28)于今天发布。我们鼓励所有 Django 2.2 用户升级到 Django 3.2 或更高版本。

CVE-2022-28346:潜在的 SQL 注入漏洞在QuerySet.annotate(), aggregate()以及extra()

QuerySet.annotate(), aggregate()以及extra()方法中,通过使用精心构造的字典以及字典扩展作为传递给这些方法的**kwargs参数,可以对列别名进行 SQL 注入攻击。

感谢 Splunk 团队:Preston Elder、Jacob Davis、Jacob Moore、Matt Hanson、David Briggs 和一位安全研究员:Danylo Dmytriiev (DDV_UA) 提供的报告。

根据 Django 安全策略,此问题的严重程度为“高”。

CVE-2022-28347:潜在的 SQL 注入漏洞通过QuerySet.explain(**options)在 PostgreSQL 上

QuerySet.explain()方法中,通过使用精心构造的字典以及字典扩展作为传递给方法的**options参数,可以对选项名称进行 SQL 注入攻击。

感谢 Mariusz Felisiak 提供的报告。

根据 Django 安全策略,此问题的严重程度为“高”。

受影响的支持版本

  • Django 主分支
  • Django 4.0
  • Django 3.2
  • Django 2.2

解决方案

已将修复此问题的补丁应用于 Django 的主分支以及 4.0、3.2 和 2.2 发布分支。补丁可以从以下更改集中获取。

CVE-2022-28346

CVE-2022-28347

已发布以下版本

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

关于安全报告的一般说明

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

返回顶部