Django 发布安全更新:3.2.5 和 3.1.13
根据我们的安全发布策略,Django 团队发布了Django 3.2.5 和 Django 3.1.13。这些版本解决了下面详细说明的严重性为“高”的安全问题。我们鼓励所有 Django 用户尽快升级。
CVE-2021-35042:通过未经消毒的QuerySet.order_by()输入
传递给QuerySet.order_by()的未经消毒的用户输入可能会绕过已标记为弃用的路径中的预期列引用验证,从而导致潜在的 SQL 注入,即使发出了弃用警告。
作为缓解措施,在弃用期间恢复了严格的列引用验证。此回归在 3.1 中作为修复 #31426 的副作用出现。
主分支中不存在此问题,因为已删除弃用的路径。
感谢 Joel Saunders 报告此问题。
受影响的支持版本
- Django 3.2
- Django 3.1
解决方案
已将解决此问题的补丁应用于 Django 的 3.2 和 3.1 发布分支。可以从以下变更集中获取这些补丁
已发布以下版本
- Django 3.2.5 (下载 Django 3.2.5 | 3.2.5 校验和)
- Django 3.1.13 (下载 Django 3.1.13 | 3.1.13 校验和)
此版本使用的 PGP 密钥 ID 为 Mariusz Felisiak:2EF56372BA48CD1B。
关于安全报告的常规说明
与以往一样,我们恳请您通过私人电子邮件向security@djangoproject.com报告潜在的安全问题,而不是通过 Django 的 Trac 实例或 django-developers 列表报告。请参阅我们的安全策略以获取更多信息。