跳转到: 导航, 搜索

OSSN/OSSN-0054


Horizon 登录页面潜在拒绝服务攻击

总结

Horizon 使用基于 Python 的 Django Web 框架。该框架的旧版本允许未经授权的用户填满会话存储数据库,导致 Horizon 拒绝服务。Django 已经发布了修复补丁,但仅适用于 Kilo 及更高版本的 Horizon。

受影响的服务 / 软件

Horizon, Django, Essex, Folsom, Grizzly, Havana, Icehouse, Juno

讨论

Django 会记录来自 Web 请求的会话 ID,即使该请求来自未经授权的用户。这允许攻击者用无效的会话信息填充会话存储数据库,从而可能导致拒绝服务,因为数据库被无用的会话信息填满。

建议的操作

Django 开发者已经发布了针对此问题的修复补丁,该补丁包含在软件版本 1.4.21、1.7.9 和 1.8.3 中。Horizon 管理员应确保他们使用的是最新的 Django 版本,以避免受到此漏洞的影响。

低于 Kilo 版本的 Horizon 无法运行修复后的 Django 版本,可能需要升级到更新版本的 OpenStack。管理员可以通过尝试使用以下脚本将无效会话注入会话存储数据库,然后查询会话存储数据库以检查是否记录了多个 'aaaaa' 会话 ID 来测试他们的部署是否受到影响。

 for i in {1..100}
 do
   curl -b "sessionid=aaaaa;" http://HORIZON__IP/auth/login/ &> /dev/null
 done

如果可能,受影响的用户应升级到 Kilo 或更高版本的 Horizon,以便使用修复后的 Django 版本。

联系方式 / 参考文献