Django 的开发团队致力于负责任地报告和披露与安全相关的问题,正如 Django 的安全政策 所概述的那样。
作为该承诺的一部分,我们保留了以下已修复和披露的历史问题清单。对于每个问题,下面的列表包括日期、简要描述、CVE 标识符 (如果适用)、受影响版本的列表、到完整披露的链接以及到适当补丁的链接。
一些重要的注意事项适用于这些信息:
- 受影响的版本列表只包括那些在披露时有稳定的、安全支持的版本的 Django。这意味着旧版本(其安全支持已经过期)和在披露时处于发布前(alpha/beta/RC)状态的版本可能会受到影响,但没有被列出。
- Django 项目有时会发布安全公告,指出潜在的安全问题,这些问题可能是由于配置不当或 Django 本身以外的其他问题造成的。有些安全公告已经收到了 CVE,在这种情况下,它们会被列在这里,但由于它们没有附带的补丁或版本,所以只会列出描述、披露和 CVE。
Django 的安全流程下的问题
所有的安全问题都已经在 Django 的安全进程的版本下处理。这些版本列举如下。
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
针对 JSONField
/HStoreField
在键和索引查询时带来的潜在 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 年 2 月 11 日 - CVE-2019-6975
django.utils.numberformat.format()
中内存耗尽。完整说明
2019 年 1 月 4 日 - CVE-2019-3498
默认 404 页面存在内容欺骗的可能。完整说明
2018 年 8 月 1 日 - CVE-2018-14574
在 CommonMiddleware
中开放重定向的可能性。完整说明
2018 年 3 月 6 日 - CVE-2018-7537
truncatechars_html
和 truncatewords_html
模板过滤器中存在拒绝服务的可能性。完整说明
2018 年 3 月 6 日 - CVE-2018-7536
urlize
和 urlizetrunc
模板过滤器中存在拒绝服务的可能性。完整说明
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 年 3 月 1 日 - CVE-2016-2512
通过用户提供的包含基本认证的重定向 URL 进行恶意重定向和可能的 XSS 攻击。完整说明
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
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
受影响的版本
- Django 1.8 (补丁)
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
受影响的版本
- Django 1.8 (补丁)
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
受影响的版本
- Django 1.4 (补丁 和 Python 兼容性修复)
- Django 1.5 (补丁)
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
受影响的版本
- Django 1.5 (补丁)
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
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/>`__
受影响的版本
- Django 1.2 (补丁)
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。
2006 年 8 月 16 日 - CVE-2007-0404
翻译框架中的文件名验证问题。完整说明
讨论区