安全问题档案

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

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

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

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

Django 的安全流程下的问题

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

May 3, 2023 - CVE-2023-31047

Potential bypass of validation when uploading multiple files using one form field. Full description

February 14, 2023 - CVE-2023-24580

Potential denial-of-service vulnerability in file uploads. Full description

February 1, 2023 - CVE-2023-23969

Potential denial-of-service via Accept-Language headers. Full description

October 4, 2022 - CVE-2022-41323

Potential denial-of-service vulnerability in internationalized URLs. Full description

August 3, 2022 - CVE-2022-36359

Potential reflected file download vulnerability in FileResponse. Full description

July 4, 2022 - CVE-2022-34265

Potential SQL injection via Trunc(kind) and Extract(lookup_name) arguments. Full description

April 11, 2022 - CVE-2022-28346

Potential SQL injection in QuerySet.annotate(), aggregate(), and extra(). Full description

April 11, 2022 - CVE-2022-28347

Potential SQL injection via QuerySet.explain(**options) on PostgreSQL. Full description

February 1, 2022 - CVE-2022-22818

Possible XSS via {% debug %} template tag. Full description

受影响的版本

February 1, 2022 - CVE-2022-23833

Denial-of-service possibility in file uploads. Full description

受影响的版本

January 4, 2022 - CVE-2021-45452

Potential directory-traversal via Storage.save(). Full description

受影响的版本

January 4, 2022 - CVE-2021-45116

Potential information disclosure in dictsort template filter. Full description

受影响的版本

January 4, 2022 - CVE-2021-45115

Denial-of-service possibility in UserAttributeSimilarityValidator. Full description

受影响的版本

December 7, 2021 - CVE-2021-44420

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

May 6, 2021 - CVE-2021-32052

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

DEBUG=Tr 时,DNS 重绑定漏洞。完整说明

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

November 24, 2015 - CVE-2015-8213

Settings leak possibility in date template filter. Full description

受影响的版本

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

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

受影响的版本

July 8, 2015 - CVE-2015-5145

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

受影响的版本

July 8, 2015 - CVE-2015-5144

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

受影响的版本

July 8, 2015 - CVE-2015-5143

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

受影响的版本

May 20, 2015 - CVE-2015-3982

Fixed session flushing in the cached_db backend. Full description

受影响的版本

March 18, 2015 - CVE-2015-2317

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

受影响的版本

March 18, 2015 - CVE-2015-2316

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

受影响的版本

March 9, 2015 - CVE-2015-2241

XSS attack via properties in ModelAdmin.readonly_fields. Full description

受影响的版本

January 13, 2015 - CVE-2015-0222

Database denial-of-service with ModelMultipleChoiceField. Full description

受影响的版本

January 13, 2015 - CVE-2015-0221

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

受影响的版本

January 13, 2015 - CVE-2015-0220

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

受影响的版本

January 13, 2015 - CVE-2015-0219

WSGI header spoofing via underscore/dash conflation. Full description

受影响的版本

August 20, 2014 - CVE-2014-0483

Data leakage via querystring manipulation in admin. Full description

受影响的版本

August 20, 2014 - CVE-2014-0482

RemoteUserMiddleware session hijacking. Full description

受影响的版本

August 20, 2014 - CVE-2014-0481

File upload denial of service. Full description

受影响的版本

August 20, 2014 - CVE-2014-0480

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

受影响的版本

May 18, 2014 - CVE-2014-3730

Malformed URLs from user input incorrectly validated. Full description

受影响的版本

May 18, 2014 - CVE-2014-1418

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

受影响的版本

April 21, 2014 - CVE-2014-0474

MySQL typecasting causes unexpected query results. Full description

受影响的版本

April 21, 2014 - CVE-2014-0473

Caching of anonymous pages could reveal CSRF token. Full description

受影响的版本

April 21, 2014 - CVE-2014-0472

Unexpected code execution using reverse(). Full description

受影响的版本

September 14, 2013 - CVE-2013-1443

Denial-of-service via large passwords. Full description

受影响的版本

September 10, 2013 - CVE-2013-4315

Directory-traversal via ssi template tag. Full description

受影响的版本

August 13, 2013 - CVE-2013-6044

Possible XSS via unvalidated URL redirect schemes. Full description

受影响的版本

August 13, 2013 - CVE-2013-4249

XSS via admin trusting URLField values. Full description

受影响的版本

February 19, 2013 - CVE-2013-0306

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

受影响的版本

February 19, 2013 - CVE-2013-0305

Information leakage via admin history log. Full description

受影响的版本

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

Entity-based attacks against Python XML libraries. Full description

受影响的版本

February 19, 2013 - No CVE

Additional hardening of Host header handling. Full description

受影响的版本

December 10, 2012 - No CVE 2

Additional hardening of redirect validation. Full description

受影响的版本

December 10, 2012 - No CVE 1

Additional hardening of Host header handling. Full description

受影响的版本

October 17, 2012 - CVE-2012-4520

Host header poisoning. Full description

受影响的版本

July 30, 2012 - CVE-2012-3444

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

受影响的版本

July 30, 2012 - CVE-2012-3443

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

受影响的版本

July 30, 2012 - CVE-2012-3442

XSS via failure to validate redirect scheme. Full description

受影响的版本

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

2011 年9月9日 - CVE-2011-4139

Host header cache poisoning. Full description

受影响的版本

2011 年9月9日 - CVE-2011-4138

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

受影响的版本

September 9, 2011 - CVE-2011-4137

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

受影响的版本

2011 年9月9日 - CVE-2011-4136

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

受影响的版本

February 8, 2011 - CVE-2011-0698

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

受影响的版本

February 8, 2011 - CVE-2011-0697

XSS via unsanitized names of uploaded files. Full description

受影响的版本

February 8, 2011 - CVE-2011-0696

CSRF via forged HTTP headers. Full description

受影响的版本

December 22, 2010 - CVE-2010-4535

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

受影响的版本

December 22, 2010 - CVE-2010-4534

界面管理中的信息泄漏`完整描述<https://www.djangoproject.com/weblog/2010/dec/22/security/>`__

受影响的版本

2010年9月8日 - CVE-2010-3082

XSS通过信任不安全的cookie值。完整描述<https://www.djangoproject.com/weblog/2010/sep/08/security-release/>`__

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

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

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

受影响的版本

Django 安全进程之前的问题

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

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

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

受影响的版本

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

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

受影响的版本