OSSN/OSSN-0015

Summary
The default policy settings in Glance allow any user to upload an image that is publicly available to all users. This can allow a malicious user to upload a vulnerable image that other users may use, unknowingly exposing themselves to attack.

Affected Services / Software
Glance, Folsom, Grizzly, Havana, Icehouse

Discussion
When uploading an image to Glance, the user performing the upload is able to mark the image as public. This allows all other users to see and use the image when they create new instances. The ability to share images with all users within an OpenStack deployment is very useful, but it can potentially be abused for malicious purposes. For example, an image can be uploaded that contains a backdoor that allows the attacker to have unauthorized access to instances that are created from that image.

Glance does allow for the ability to publicize images to be controlled by policy. However, the default policy setting allows all users to publicize images.

Recommended Actions
It is recommended that the ability to publicize images in Glance be restricted to trusted users, such as users with the admin role. This can be done by modifying the publicize_image capability in Glance's policy.json file. Here is an example of restricting this capability to users with the admin role:

"publicize_image": "role:admin",

The default policy setting in Glance is planned to be changed to restrict the ability to publicize images to users with the admin role in the Juno release of OpenStack.

Contacts / References

 * Author: Nathan Kinder, Red Hat
 * This OSSN : https://wiki.openstack.org/wiki/OSSN/OSSN-0015
 * Original LaunchPad Bug : https://bugs.launchpad.net/glance/+bug/1313746
 * OpenStack Security ML : openstack-security@lists.openstack.org
 * OpenStack Security Group : https://launchpad.net/~openstack-ossg