OSSN/1226078
Glance 允许在未经消费者项目批准的情况下,在项目之间共享镜像
总结
Glance 允许镜像在项目之间共享。在某些 API 版本中,镜像可以在未经消费者项目批准的情况下共享。这可能导致潜在的恶意镜像出现在项目的镜像列表中。
受影响的服务 / 软件
Glance, Image Service, Diablo, Essex, Folsom, Grizzly, Havana
讨论
自 OpenStack Diablo 版本发布以来,Glance 允许镜像在项目之间共享。要共享镜像,镜像生产者将消费者项目添加为镜像的成员。在使用 Image Service API v1 时,镜像生产者能够与消费者项目共享镜像,而无需获得他们的批准。这导致共享的镜像出现在消费者项目的镜像列表中。这可能会误导在消费者项目中具有角色的用户,导致他们运行潜在的恶意镜像。
Image Service API v2.0 不允许项目之间共享镜像,因此项目不会受到其他项目共享的未经授权镜像的影响。Image Service API v2.1 允许使用两步过程共享镜像。镜像生产者必须将消费者添加为镜像的成员,并且消费者必须在镜像显示在他们的镜像列表中之前接受共享的镜像。此额外的批准过程允许消费者控制其镜像列表中显示的镜像,从而防止在未经消费者知情的情况下使用潜在的恶意镜像。
建议的操作
在 OpenStack Diablo、Essex 和 Folsom 版本中,Glance 支持使用 Image Service API v1 共享镜像。没有办法要求消费者项目批准共享的镜像。应提醒用户在使用其镜像列表中的镜像时要小心,因为他们可能正在使用在未经他们知情的情况下与他们共享的镜像。
在 OpenStack Grizzly 和 Havana 版本中,Glance 支持 Image Service API v2.1 或更高版本。仍然提供对 Image Service API v1 的支持,该 API 允许在未经消费者项目批准的情况下在项目之间共享镜像。如果可能,建议禁用 Image Service API 的 v1 版本。这可以通过在 glance-api.conf 配置文件中设置以下指令来完成
enable_v1_api = False
联系方式 / 参考文献
- Nathan Kinder, Red Hat
- 此 OSSN:https://bugs.launchpad.net/ossn/+bug/1226078
- 原始 LaunchPad Bug:https://bugs.launchpad.net/glance/+bug/1226078
- OpenStack Security ML:openstack-security@lists.openstack.org
- OpenStack Security Group:https://launchpad.net/~openstack-ossg
- CVE: CVE-2013-4354