OSSN/OSSN-0060
< OSSN
Glance 配置选项可能导致权限提升
总结
Glance 在配置文件 `glance-api.conf` 中暴露了一个名为 `use_user_token` 的配置选项。需要注意的是,默认设置 (`True`) 是安全的。但是,如果将该设置更改为 `False`,并在以下部分 (`admin_user` 和 `admin_password`) 提供有效的管理员凭据,则 Glance API 命令将以管理员权限执行,而无论调用用户的预期权限级别如何。
受影响的服务 / 软件
Glance, Juno, Kilo, Liberty
讨论
`use_user_token` 配置选项的创建是为了启用即将过期的 token 的自动重新认证,从而防止 token 在较长的 Glance 命令执行过程中过期。不幸的是,该实现通过自动以管理员级别用户执行 API 命令,从而导致权限提升攻击。
默认情况下,`use_user_token` 设置为 `True`,这是安全的。如果禁用该选项(设置为 `False`)并在 `glance-api.conf` 文件中指定有效的管理员凭据,则 API 命令将以提供的管理员用户身份执行,而无论调用用户的预期权限如何。未启用注册服务 (`data_api = glance.db.registry.api`) 的 Glance API v2 配置不受影响。
允许未认证和权限较低的用户以管理员权限执行 Glance 命令非常危险,可能会暴露以下风险,包括
- 篡改镜像
- 删除镜像
- 拒绝服务攻击
建议的操作
全面的修复将包含在 Mitaka 版本中。同时,建议所有用户确保 `use_user_token` 保持默认设置 (`True`) 或被注释掉。
联系方式 / 参考文献
- 作者:Travis McPeak, HP
- 此 OSSN:https://wiki.openstack.org/wiki/OSSN/OSSN-0060
- 原始 LaunchPad Bug:https://bugs.launchpad.net/glance/+bug/1493448
- OpenStack 安全文档:https://security.openstack.org
- OpenStack 安全项目:https://wiki.openstack.org/wiki/Security
- Bug 引入:https://review.openstack.org/#/c/29967/