发布安全修复
今天,我们发布了一个修复程序,用于解决在 Django 国际化框架中发现的安全漏洞。完整的详细信息如下,但简而言之,您应该立即更新到 Django 的修复版本。
我们正在发布所有受影响 Django 版本的点版本。您可以在 https://django.ac.cn/download/ 下载它们。跟踪主干开发的人员应尽快执行“svn update”。
请将有关此版本的任何问题发送到 django-users (http://groups.google.com/group/django-users)。
漏洞描述
Django 的国际化 (“i18n”) 系统使用一个每个进程的缓存来存储针对 HTTP Accept-Language 标头特定值的翻译查找结果,该缓存使用该标头的完整值作为键。攻击者可以通过发送包含极长字符串的 Accept-Language 标头的重复请求来利用此漏洞,从而可能导致拒绝服务,因为填满了可用的内存。
由于 Web 服务器软件对 HTTP 标头字段大小的限制,以及对单个服务器进程在其生命周期内可能处理的请求数量的合理限制,此漏洞可能难以利用。此外,仅当 Django 中的“USE_I18N”设置设置为“True”并且启用了 i18n 中间件组件*时才会出现此漏洞。尽管如此,仍鼓励所有受影响 Django 版本的用户进行更新。
受影响的版本
- 修订版 [6608] 之前的 Django 主干。
- Django 0.96
- Django 0.95(包括 0.95.1)
- Django 0.91
解决方案
今天发布了包含此修复程序的新版 Django,这些版本更改了此缓存机制以存储缩短的、规范化的值并拒绝格式不正确的标头。
这些版本称为
- Django 0.96.1(替换 Django 0.96)
- Django 0.95.2(替换 Django 0.95.1)
- Django 0.91.1(替换 Django 0.91.1)
任何使用稳定 Django 版本的用户都应立即升级到其中一个点版本。这些修复版本已提供给各种操作系统发行版中 Django 软件包的维护人员,并应很快发布。
任何跟踪 Django 主干开发的人员都应使用 Subversion 更新到至少修订版 [6608]。
此外,这些修复程序已提交到各个“bugfixes”分支
- http://code.djangoproject.com/svn/django/branches/0.91-bugfixes/
- http://code.djangoproject.com/svn/django/branches/0.95-bugfixes/
- http://code.djangoproject.com/svn/django/branches/0.96-bugfixes/
* 此帖子最初未提及必须启用 i18n 中间件组件才能触发此错误。
返回顶部