---
title: "Django 2.0.2 版本发行说明"
version: 5.0
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/5.0/releases/2.0.2/
canonical: https://djangodocs.dev/zh-hans/5.0/releases/2.0.2/
---
# Django 2.0.2 版本发行说明

*2018 年 2 月 1 日*

Django 2.0.2 修复了 2.0.1 版本中的一个安全问题和一些错误。

## CVE-2018-6188: `AuthenticationForm` 中的信息泄露问题

Django 1.11.8 中的一个退化问题导致 [`AuthenticationForm`](/zh-hans/5.0/topics/auth/default/#django.contrib.auth.forms.AuthenticationForm) 即使输入了不正确的密码，也会运行其 `confirm_login_allowed()` 方法。这可能会泄露关于用户的信息，具体取决于 `confirm_login_allowed()` 引发了什么消息。如果未覆盖 `confirm_login_allowed()`，攻击者可以输入任意用户名并查看该用户是否已设置为 `is_active=False`。如果覆盖了 `confirm_login_allowed()`，则可能会泄露更敏感的详细信息。

这个问题已经得到修复，但需要注意的是，如果身份验证后端拒绝非活动用户（默认身份验证后端“ModelBackend”自 Django 1.10 起就一直是这样），那么 `AuthenticationForm` 不再会引发“此帐户处于非活动状态。”错误。这个问题将在 Django 2.1 中重新审查，因为解决这个问题的修复措施可能对旧版本来说过于侵入性。

## 漏洞修复

- 已修复某些语言版本的 "安装成功！" 页面底部的隐藏内容问题（[#28885](https://code.djangoproject.com/ticket/28885)）。
- 修复了如果一个模型有两个指向同一模型的外键，且目标模型被删除时外键空值化不正确的问题 ([#29016](https://code.djangoproject.com/ticket/29016))。
- 已修复在使用 `QuerySet.values_list(..., flat=True)` 后跟 `annotate()` 时的回归问题（[#29067](https://code.djangoproject.com/ticket/29067)）。
- 已修复一个回归问题，其中对包含几何对象的查询集进行注释会导致崩溃（[#29054](https://code.djangoproject.com/ticket/29054)）。
- 修复了一个退化问题，即如果身份验证后端不接受 `request`，而后续的后端接受它，`contrib.auth.authenticate()` 会崩溃的问题 ([#29071](https://code.djangoproject.com/ticket/29071))。
- 已修复一个回归问题，其中如果迁移目录没有 `__init__.py` 文件，`makemigrations` 会崩溃（[#29091](https://code.djangoproject.com/ticket/29091)）。
- 修复了在 `ModelAdmin.raw_id_fields` 中输入无效 UUID 时导致崩溃的问题 ([#29094](https://code.djangoproject.com/ticket/29094))。
