Django 发布安全更新:1.10.7、1.9.13 和 1.8.18

作者:Tim Graham 发表于 2017年4月4日

根据我们的安全发布策略,Django 团队发布了Django 1.10.7Django 1.9.131.8.18。这些版本解决了下面详述的两个安全问题。我们鼓励所有 Django 用户尽快升级。Django 主分支和 stable/1.11.x 分支也已更新。Django 1.11 版本将在稍后的单独博文中发布。

CVE-2017-7233:通过用户提供的数字重定向 URL 进行开放重定向和可能的 XSS 攻击

Django 在某些情况下依赖于用户输入(例如django.contrib.auth.views.login()和 i18n)将用户重定向到“成功”URL。对这些重定向的安全检查(即django.utils.http.is_safe_url())将某些数字 URL(例如http:999999999)视为“安全”,但实际上并非如此。

此外,如果开发人员依赖于is_safe_url()来提供安全的重定向目标并将此类 URL 放入链接中,他们可能会遭受 XSS 攻击。

CVE-2017-7234:中的开放重定向漏洞django.views.static.serve()

使用该django.views.static.serve()视图对 Django 站点的恶意制作的 URL 可以重定向到任何其他域。该视图不再执行任何重定向,因为它们没有提供任何已知的、有用的功能。

但是,请注意,此视图始终带有警告,即它未针对生产用途进行加固,应仅用作开发辅助工具。

感谢 Chaitin Tech 的 Phithon (@ChaitinTech) 报告此问题。

受影响的支持版本

  • Django 主开发分支
  • Django 1.11(处于候选发布状态,最终版本即将发布)
  • Django 1.10
  • Django 1.9
  • Django 1.8

根据我们的支持版本策略,Django 1.7 及更旧版本不再接收安全更新。此外,Django 1.9.x 已达到生命周期结束——这是该系列的最终版本。

解决方案

已将解决这些问题的补丁应用于 Django 的主开发分支和 1.11、1.10、1.9 和 1.8 发布分支。补丁可以从以下变更集中获取

在开发主分支上

在 1.11 发布分支上

在 1.10 发布分支上

在 1.9 发布分支上

在 1.8 发布分支上

已发布以下版本

这些版本使用的 PGP 密钥 ID 为 Tim Graham:1E8ABDC773EDE252。

关于安全报告的常规说明

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

返回顶部