返回 登录
0

Django安全补丁更新,1.10.3、1.9.11和1.8.16受影响

原文Django security releases issued: 1.10.3, 1.9.11 and 1.8.16
作者:Django 翻译赖信涛 责编:仲培艺

根据我们的安全补丁政策,Django团队发布了Django 1.10.3Django 1.9.111.8.16的补丁。主要修补了以下两个安全问题,我们强烈建议所有Django用户尽快安装更新。

CVE-2016-9013:当在Oracle上运行测试时会生成一个带有硬编码密码的临时用户

当使用Oracle水库运行测试时,Django会产生一个临时的数据库用户。在旧的版本中,如果密码没有在数据库的TEST目录内手动设置,就会默认使用一个硬编码的密码。这可能会被黑客利用从而远程进入数据库。

测试完成之后,一般这个用户都会被删掉,但是manage.py test --keepdb或测试用户有活跃的session的话(例如黑客已经登录),可能会保留数据库。

现在,已经修改为对每一次测试都随机生成密码。

感谢Marti Raudsepp报告这个issue。

DEBUG=True时的DNS重绑漏洞

settings.DEBUG=True时,旧版本的Django不会通过settings.ALLOWED_HOSTS验证Host的Header。这可能导致潜在的DNS重绑定攻击

Django不提供允许远程代码执行的模块,但如果开发人员在开发中加载生产数据库的副本或连接到某些没有开发实例的生产环境,这就会成为一个跨站点脚本的漏洞。如果项目使用了像django-debug-toolbar一样的包,那么攻击者就可以执行任意SQL,要是开发者用的是超级管理员账户,那就更糟糕了。

现在,无论DEBUG是不是True,都必须验证settings.ALLOWED_HOSTS。如果ALLOWED_HOSTS是空的而且DEBUG=True['localhost', '127.0.0.1', '::1']将会自动添加。如果你本地文件的ALLOWED_HOSTS和生产环境一样,最好马上将它删掉。

解决方法

所有这些问题都已经在Django master分支中更新了,1.10和1.9,1.8也都更新。建议尽快升级到最新版本。


图片描述

评论