Django 3.0.7 版本发行说明

2020 年 6 月 3 日

Django 3.0.7 修复了 3.0.6 版本中的两个安全问题和多个错误。

CVE-2020-13254 : 可能通过格式不正确的 memcached 键导致数据泄露

在某些情况下,如果一个 memcached 后端没有执行键验证,传递格式不正确的缓存键可能会导致键碰撞和潜在的数据泄露。为了避免这个漏洞,将键验证添加到 memcached 缓存后端。

CVE-2020-13596: 可能通过管理员 ForeignKeyRawIdWidget 进行跨站脚本攻击 (XSS) 攻击

管理员 ForeignKeyRawIdWidget 的查询参数未正确进行 URL 编码,存在跨站脚本攻击 (XSS) 风险。现在,ForeignKeyRawIdWidget 确保查询参数正确进行了 URL 编码。

漏洞修复

  • 通过恢复在 Meta.ordering 中使用字段查找的功能,修复了 Django 3.0 中的一个回归问题 (#31538)。
  • 修复了 Django 3.0 中的一个回归问题,该问题导致如果查询集中包含了聚合和子查询注释,那么 QuerySet.values()values_list() 会崩溃 (#31566)。
  • 修复了 Django 3.0 中的一个回归问题,当查询集具有多个子查询注释时,聚合使用了错误的注释 (#31568)。
  • 修复了 Django 3.0 中的一个回归问题,该问题导致如果查询集中包含了聚合和 Oracle 上的 Exists() 注释,那么 QuerySet.values()values_list() 会崩溃 (#31584)。
  • 修复了 Django 3.0 中的一个回归问题,该问题导致所有已解析的 Subquery() 表达式被视为相等 (#31607)。
  • 修复了 Django 3.0.5 中的一个回归问题,该问题影响了为领土语言变体和通用语言提供翻译的应用程序的翻译加载,其中项目对该语言具有不同的复数规则 (#31570)。
  • 追踪了一个 jQuery 的安全发布,将管理员界面中使用的 jQuery 版本从 3.4.1 升级到 3.5.1 。