# Django 3.2.11.dev 文档

# 安全问题档案

Django 的开发团队致力于负责任地报告和披露与安全相关的问题，正如 Django 的安全政策 所概述的那样。

作为该承诺的一部分，我们保留了以下已修复和披露的历史问题清单。对于每个问题，下面的列表包括日期、简要描述、CVE 标识符 （如果适用）、受影响版本的列表、到完整披露的链接以及到适当补丁的链接。

一些重要的注意事项适用于这些信息：

- 受影响的版本列表只包括那些在披露时有稳定的、安全支持的版本的 Django。这意味着旧版本（其安全支持已经过期）和在披露时处于发布前（alpha／beta／RC）状态的版本可能会受到影响，但没有被列出。
- Django 项目有时会发布安全公告，指出潜在的安全问题，这些问题可能是由于配置不当或 Django 本身以外的其他问题造成的。有些安全公告已经收到了 CVE，在这种情况下，它们会被列在这里，但由于它们没有附带的补丁或版本，所以只会列出描述、披露和 CVE。

## Django 的安全流程下的问题

所有的安全问题都已经在 Django 的安全进程的版本下处理。这些版本列举如下。

### December 7, 2021 - CVE-2021-44420

Potential bypass of an upstream access control based on URL paths. Full description

#### 受影响的版本

- Django 3.2 (patch)
- Django 3.1 (patch)
- Django 2.2 (patch)

### 2021 年 7 月 1 日 - CVE-2021-35042

潜在的 SQL 注入，通过未检验的 `QuerySet.order_by()` 输入。完整描述

#### 受影响的版本

- Django 3.2 （补丁）
- Django 3.1 （补丁）

### 2021 年 6 月 2 日 - CVE-2021-33203

可能通过 `admindocs` 进行目录遍历。完整描述

#### 受影响的版本

- Django 3.2 （补丁）
- Django 3.1 （补丁）
- Django 2.2 （补丁）

### 2021 年 6 月 2 日 - CVE-2021-33571

由于验证器接受 IPv4 地址中的前导零，因此可能出现不确定的 SSRF、RFI 和 LFI 攻击。完整描述

#### 受影响的版本

- Django 3.2 （补丁）
- Django 3.1 （补丁）
- Django 2.2 （补丁）

### May 6, 2021 - CVE-2021-32052

Header injection possibility since `URLValidator` accepted newlines in input on Python 3.9.5+. Full description

#### 受影响的版本

- Django 3.2 (patch)
- Django 3.1 (patch)
- Django 2.2 (patch)

### 2021 年 5 月 4 日 - CVE-2021-31542

通过上传的文件进行潜在的目录遍历。完整描述

#### 受影响的版本

- Django 3.2 （补丁）
- Django 3.1 （补丁）
- Django 2.2 （补丁）

### 2021 年 4 月 6 日 - CVE-2021-28658

通过上传的文件进行潜在的目录遍历。完整描述

#### 受影响的版本

- Django 3.2 （补丁）
- Django 3.1 （补丁）
- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2021 年 2 月 19 日 - CVE-2021-23336

通过 `django.utils.http.limited_parse_qsl()` 进行的网络缓存中毒。完整描述。

#### 受影响的版本

- Django 3.2 （补丁）
- Django 3.1 （补丁）
- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2021 年 2 月 1 日 - CVE-2021-3281

通过 `archive.extract()` 进行潜在的目录遍历。完整说明

#### 受影响的版本

- Django 3.1 （补丁）
- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2020 年 9 月 1 日 - CVE-2020-24584

在 Python 3.7+ 上，文件系统缓存的中间层目录的权限升级。完整说明

#### 受影响的版本

- Django 3.1 （补丁）
- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2020 年 9 月 1 日 - CVE-2020-24583

在 Python 3.7+ 上，中间层目录的权限不正确。完整说明

#### 受影响的版本

- Django 3.1 （补丁）
- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2020 年 6 月 3 日 - CVE-2020-13596

可能通过管理 `ForeignKeyRawIdWidget` 进行 XSS。完整说明

#### 受影响的版本

- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2020 年 6 月 3 日 - CVE-2020-13254

通过畸形的 memcached 密钥可能造成数据泄露。完整说明

#### 受影响的版本

- Django 3.0 （补丁）
- Django 2.2 （补丁）

### 2020 年 3 月 4 日 - CVE-2020-9402

针对 Oracle 数据库， 通过 GIS 函数和聚合函数中的 `tolerance` 参数带来的潜在 SQL 注入。完整说明

#### 受影响的版本

- Django 3.0 （补丁）
- Django 2.2 （补丁）
- Django 1.11 （补丁）

### 2020 年 2 月 3 日 - CVE-2020-7471

通过 `StringAgg(delimiter)` 带来的潜在 SQL 注入。 完整说明

#### 受影响的版本

- Django 3.0 （补丁）
- Django 2.2 （补丁）
- Django 1.11 （补丁）

### 2019 年 12 月 18 日 - CVE-2019-19844

通过密码重置表单带来的潜在账户劫持。完整说明

#### 受影响的版本

- Django 3.0 （补丁）
- Django 2.2 （补丁）
- Django 1.11 （补丁）

### 2019 年 12 月 2 日 - CVE-2019-19118

在 Django 管理中的特权提升。完整说明

#### 受影响的版本

- Django 3.0 （补丁）
- Django 2.2 （补丁）
- Django 2.1 （补丁）

### 2019 年 8 月 1 日 - CVE-2019-14235

在 `django.utils.encoding.uri_to_iri()` 函数中潜在的内存耗尽。 完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）
- Django 1.11 （补丁）

### 2019 年 8 月 1 日 - CVE-2019-14234

针对 `JSONField` ／`HStoreField` 在键和索引查询时带来的潜在 SQL 注入。 完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）
- Django 1.11 （补丁）

### 2019 年 8 月 1 日 - CVE-2019-14233

存在于 `strip_tags()` 函数的拒绝服务攻击。完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）
- Django 1.11 （补丁）

### 2019 年 8 月 1 日 - CVE-2019-14232

存在于 `django.utils.text.Truncator` 的拒绝服务攻击。完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）
- Django 1.11 （补丁）

### 2019 年 7 月 1 日 - CVE-2019-12781

通过 HTTPS 连接反向代理的 HTTP 检测不正确。。完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）
- Django 1.11 （补丁）

### 2019 年 6 月 3 日 - CVE-2019-12308

由 `AdminURLFieldWidget` 生成的 “Current URL” 连接引起的跨站脚本漏洞。完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）
- Django 1.11 （补丁）

### 2019 年 6 月 3 日 - CVE-2019-11358

捆绑 jQuery 的原型污染。完整说明

#### 受影响的版本

- Django 2.2 （补丁）
- Django 2.1 （补丁）

### 2019 年 2 月 11 日 - CVE-2019-6975

`django.utils.numberformat.format()` 中内存耗尽。完整说明

#### 受影响的版本

- Django 2.1 （补丁）
- Django 2.0 （补丁 和 修正）
- Django 1.11 （补丁）

### 2019 年 1 月 4 日 - CVE-2019-3498

默认 404 页面存在内容欺骗的可能。完整说明

#### 受影响的版本

- Django 2.1 （补丁）
- Django 2.0 （补丁）
- Django 1.11 （补丁）

### 2018 年 10 月 1 日 - CVE-2018-16984

密码哈希值披露给了 “只看” 的管理员用户。完整说明

#### 受影响的版本

- Django 2.1 （补丁）

### 2018 年 8 月 1 日 - CVE-2018-14574

在 `CommonMiddleware` 中开放重定向的可能性。完整说明

#### 受影响的版本

- Django 2.1 （补丁）
- Django 2.0 （补丁）
- Django 1.11 （补丁）

### 2018 年 3 月 6 日 - CVE-2018-7537

`truncatechars_html` 和 `truncatewords_html` 模板过滤器中存在拒绝服务的可能性。完整说明

#### 受影响的版本

- Django 2.0 （补丁）
- Django 1.11 （补丁）
- Django 1.8 （补丁）

### 2018 年 3 月 6 日 - CVE-2018-7536

`urlize` 和 `urlizetrunc` 模板过滤器中存在拒绝服务的可能性。完整说明

#### 受影响的版本

- Django 2.0 （补丁）
- Django 1.11 （补丁）
- Django 1.8 （补丁）

### 2018 年 2 月 1 日 - CVE-2018-6188

`AuthenticationForm` 中的信息泄露。完整说明

#### 受影响的版本

- Django 2.0 （补丁）
- Django 1.11 （补丁）

### 2017 年 9 月 5 日 - CVE-2017-12794

在技术 500 调试页面的回溯部分可能存在 XSS。完整说明

#### 受影响的版本

- Django 1.11 （补丁）
- Django 1.10 （补丁）

### 2017 年 4 月 4 日 - CVE-2017-7234

`django.views.static.service()` 中的开放重定向漏洞。完整说明

#### 受影响的版本

- Django 1.10 （补丁）
- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2017 年 4 月 4 日 - CVE-2017-7233

通过用户提供的数字重定向 URL 打开重定向和可能的 XSS 攻击。完整说明

#### 受影响的版本

- Django 1.10 （补丁）
- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 11 月 1 日 - CVE-2016-9014

当 `DEBUG=Tr` 时，DNS 重绑定漏洞。完整说明

#### 受影响的版本

- Django 1.10 （补丁）
- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 11 月 1 日 - CVE-2016-9013

在 Oracle 上运行测试时创建的带有硬编码密码的用户。完整说明

#### 受影响的版本

- Django 1.10 （补丁）
- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 9 月 26 日 - CVE-2016-7401

在有 Google Analytics 的网站上绕过 CSRF 保护。完整说明

#### 受影响的版本

- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 7 月 18 日 - CVE-2016-6186

管理员的添加／更改相关弹窗中的 XSS。完整说明

#### 受影响的版本

- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 3 月 1 日 - CVE-2016-2513

通过时间差对密码哈希工作因子升级进行用户枚举。完整说明

#### 受影响的版本

- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 3 月 1 日 - CVE-2016-2512

通过用户提供的包含基本认证的重定向 URL 进行恶意重定向和可能的 XSS 攻击。完整说明

#### 受影响的版本

- Django 1.9 （补丁）
- Django 1.8 （补丁）

### 2016 年 2 月 1 日 - CVE-2016-2048

拥有 “变更” 而非 “添加” 权限的用户可以用 “保存为 True” 为 `ModelAdmin` 创建对象。完整说明

#### 受影响的版本

- Django 1.9 （补丁）

### November 24, 2015 - CVE-2015-8213

Settings leak possibility in `date` template filter. Full description

#### 受影响的版本

- Django 1.8 （补丁）
- Django 1.7 （补丁）

### August 18, 2015 - CVE-2015-5963 / CVE-2015-5964

Denial-of-service possibility in `logout()` view by filling session store. Full description

#### 受影响的版本

- Django 1.8 （补丁）
- Django 1.7 （补丁）
- Django 1.4 （补丁）

### July 8, 2015 - CVE-2015-5145

Denial-of-service possibility in URL validation. Full description

#### 受影响的版本

- Django 1.8 （补丁）

### July 8, 2015 - CVE-2015-5144

Header injection possibility since validators accept newlines in input. Full description

#### 受影响的版本

- Django 1.8 （补丁）
- Django 1.7 （补丁）
- Django 1.4 （补丁）

### July 8, 2015 - CVE-2015-5143

Denial-of-service possibility by filling session store. Full description

#### 受影响的版本

- Django 1.8 （补丁）
- Django 1.7 （补丁）
- Django 1.4 （补丁）

### May 20, 2015 - CVE-2015-3982

Fixed session flushing in the cached_db backend. Full description

#### 受影响的版本

- Django 1.8 （补丁）

### March 18, 2015 - CVE-2015-2317

Mitigated possible XSS attack via user-supplied redirect URLs. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）
- Django 1.8 （补丁）

### March 18, 2015 - CVE-2015-2316

Denial-of-service possibility with `strip_tags()`. Full description

#### 受影响的版本

- Django 1.6 （补丁）
- Django 1.7 （补丁）
- Django 1.8 （补丁）

### March 9, 2015 - CVE-2015-2241

XSS attack via properties in `ModelAdmin.readonly_fields`. Full description

#### 受影响的版本

- Django 1.7 （补丁）
- Django 1.8 （补丁）

### January 13, 2015 - CVE-2015-0222

Database denial-of-service with `ModelMultipleChoiceField`. Full description

#### 受影响的版本

- Django 1.6 （补丁）
- Django 1.7 （补丁）

### January 13, 2015 - CVE-2015-0221

Denial-of-service attack against `django.views.static.serve()`. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### January 13, 2015 - CVE-2015-0220

Mitigated possible XSS attack via user-supplied redirect URLs. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### January 13, 2015 - CVE-2015-0219

WSGI header spoofing via underscore/dash conflation. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### August 20, 2014 - CVE-2014-0483

Data leakage via querystring manipulation in admin. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### August 20, 2014 - CVE-2014-0482

`RemoteUserMiddleware` session hijacking. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### August 20, 2014 - CVE-2014-0481

File upload denial of service. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### August 20, 2014 - CVE-2014-0480

`reverse()` can generate URLs pointing to other hosts. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### May 18, 2014 - CVE-2014-3730

Malformed URLs from user input incorrectly validated. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### May 18, 2014 - CVE-2014-1418

Caches may be allowed to store and serve private data. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### April 21, 2014 - CVE-2014-0474

MySQL typecasting causes unexpected query results. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### April 21, 2014 - CVE-2014-0473

Caching of anonymous pages could reveal CSRF token. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### April 21, 2014 - CVE-2014-0472

Unexpected code execution using `reverse()`. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）
- Django 1.6 （补丁）
- Django 1.7 （补丁）

### September 14, 2013 - CVE-2013-1443

Denial-of-service via large passwords. Full description

#### 受影响的版本

- Django 1.4 （补丁 和 Python 兼容性修复）
- Django 1.5 （补丁）

### September 10, 2013 - CVE-2013-4315

Directory-traversal via `ssi` template tag. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）

### August 13, 2013 - CVE-2013-6044

Possible XSS via unvalidated URL redirect schemes. Full description

#### 受影响的版本

- Django 1.4 （补丁）
- Django 1.5 （补丁）

### August 13, 2013 - CVE-2013-4249

XSS via admin trusting `URLField` values. Full description

#### 受影响的版本

- Django 1.5 （补丁）

### February 19, 2013 - CVE-2013-0306

Denial-of-service via formset `max_num` bypass. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### February 19, 2013 - CVE-2013-0305

Information leakage via admin history log. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### February 19, 2013 - CVE-2013-1664 / CVE-2013-1665

Entity-based attacks against Python XML libraries. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### February 19, 2013 - No CVE

Additional hardening of `Host` header handling. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### December 10, 2012 - No CVE 2

Additional hardening of redirect validation. Full description

#### 受影响的版本

- Django 1.3: （补丁）
- Django 1.4: （补丁）

### December 10, 2012 - No CVE 1

Additional hardening of `Host` header handling. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### October 17, 2012 - CVE-2012-4520

`Host` header poisoning. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### July 30, 2012 - CVE-2012-3444

Denial-of-service via large image files. Full description

#### 受影响的版本

- Django 1.3 （补丁）
- Django 1.4 （补丁）

### July 30, 2012 - CVE-2012-3443

Denial-of-service via compressed image files. Full description

#### 受影响的版本

- Django 1.3: （补丁）
- Django 1.4: （补丁）

### July 30, 2012 - CVE-2012-3442

XSS via failure to validate redirect scheme. Full description

#### 受影响的版本

- Django 1.3: （补丁）
- Django 1.4: （补丁）

### September 9, 2011 - CVE-2011-4140

Potential CSRF via `Host` header. Full description

#### 受影响的版本

This notification was an advisory only, so no patches were issued.

- Django 1.2
- Django 1.3

### September 9, 2011 - CVE-2011-4139

`Host` header cache poisoning. Full description

#### 受影响的版本

- Django 1.2 （补丁）
- Django 1.3 （补丁）

### September 9, 2011 - CVE-2011-4138

Information leakage/arbitrary request issuance via `URLField.verify_exists`. Full description

#### 受影响的版本

- Django 1.2: （补丁）
- Django 1.3: （补丁）

### September 9, 2011 - CVE-2011-4137

Denial-of-service via `URLField.verify_exists`. Full description

#### 受影响的版本

- Django 1.2 （补丁）
- Django 1.3 （补丁）

### September 9, 2011 - CVE-2011-4136

Session manipulation when using memory-cache-backed session. Full description

#### 受影响的版本

- Django 1.2 （补丁）
- Django 1.3 （补丁）

### February 8, 2011 - CVE-2011-0698

Directory-traversal on Windows via incorrect path-separator handling. Full description

#### 受影响的版本

- Django 1.1 （补丁）
- Django 1.2 （补丁）

### February 8, 2011 - CVE-2011-0697

XSS via unsanitized names of uploaded files. Full description

#### 受影响的版本

- Django 1.1 （补丁）
- Django 1.2 （补丁）

### February 8, 2011 - CVE-2011-0696

CSRF via forged HTTP headers. Full description

#### 受影响的版本

- Django 1.1 （补丁）
- Django 1.2 （补丁）

### December 22, 2010 - CVE-2010-4535

Denial-of-service in password-reset mechanism. Full description

#### 受影响的版本

- Django 1.1 （补丁）
- Django 1.2 （补丁）

### December 22, 2010 - CVE-2010-4534

Information leakage in administrative interface. Full description

#### 受影响的版本

- Django 1.1 （补丁）
- Django 1.2 （补丁）

### September 8, 2010 - CVE-2010-3082

XSS via trusting unsafe cookie value. Full description

#### 受影响的版本

- Django 1.2 （补丁）

### 2009 年 10 月 9 日 - CVE-2009-3965

通过缺陷正则表达性能拒绝服务。完整说明

#### 受影响的版本

- Django 1.0 （补丁）
- Django 1.1 （补丁）

### 2009 年 7 月 28 日 - CVE-2009-2659

开发服务器媒体处理程序中的目录遍历。完整说明

#### 受影响的版本

- Django 0.96 （补丁）
- Django 1.0 （补丁）

### 2008 年 9 月 2 日 - CVE-2008-3909

在管理员登录时通过保存 POST 数据进行 CSRF。完整说明

#### 受影响的版本

- Django 0.91 （补丁）
- Django 0.95 （补丁）
- Django 0.96 （补丁）

### 2008 年 5 月 14 日 - CVE-2008-2302

通过管理员登录重定向进行 XSS。完整说明

#### 受影响的版本

- Django 0.91 （补丁）
- Django 0.95 （补丁）
- Django 0.96 （补丁）

### 2007 年 10 月 26 日 - CVE-2007-5712

通过任意大的 `Accept-Language` 头拒绝服务。完整说明

#### 受影响的版本

- Django 0.91 （补丁）
- Django 0.95 （补丁）
- Django 0.96 （补丁）

## Django 安全进程之前的问题

有些安全问题是在 Django 还没有正式使用安全流程之前就已经处理好的。对于这些问题，当时可能还没有发布新的版本，可能还没有分配 CVE。

### 2007 年 1 月 21 日 - CVE-2007-0405

对认证用户进行明显的 “缓存”。完整说明

#### 受影响的版本

- Django 0.95 （补丁）

### 2006 年 8 月 16 日 - CVE-2007-0404

翻译框架中的文件名验证问题。完整说明

#### 受影响的版本

- Django 0.90 （补丁）
- Django 0.91 （补丁）
- Django 0.95 （补丁） （2007 年 1 月 21 日发布）