Django 1.11.10发行说明

2018年2月1日

Django1.11.10修复了1.11.9中的一个安全问题和几个错误。

CVE-2018-6188:信息泄露 AuthenticationForm

Django 1.11.8的回归 AuthenticationForm 运行其 confirm_login_allowed() 方法,即使输入了错误的密码。这可能泄漏有关用户的信息,具体取决于什么消息 confirm_login_allowed() 加薪。如果 confirm_login_allowed() 不会被覆盖,攻击者输入任意用户名并查看该用户是否已设置为 is_active=False .如果 confirm_login_allowed() 如果被覆盖,可能会泄露更敏感的细节。

这个问题已得到解决,但需要注意的是 AuthenticationForm 无法再引发“此帐户处于非活动状态”。如果验证后端拒绝非活动用户(默认验证后端, ModelBackend 从Django 1.10起就开始了。这一问题将在Django 2.1中重新讨论,作为解决该警告的一种解决方案,该警告很可能具有太大的侵入性,无法包含在旧版本中。

错误修正

  • 修正了如果一个模型有两个同一模型的外键,并且删除了一个目标模型,则会导致不正确的外键无效 (#29016

  • 修正了一个回归式 contrib.auth.authenticate() 如果验证后端不接受,则崩溃 request 后来的一个 (#29071

  • 修复了在中输入无效UUID时的崩溃 ModelAdmin.raw_id_fields (#29094