OSSN-0065: Users of Glance may be able to replace active image data

Summary

When Glance has been configured with the show_multiple_locations option enabled with default policy for set and delete locations, it is possible for a non-admin user having write access to the image metadata to replace active image data.

Affected Services / Software

Glance (Havana, Icehouse, Juno, Kilo, Liberty, Mitaka, Newton, Ocata)

Discussion

As a convenience to operators, Glance has a multiple location feature, disabled by default, that allows a single image to be stored in multiple places. This is intended to offer an extra degree of resilience by improving the availability of Glance images. This feature involves a user setting a new entry in an image’s ‘locations’ list, not visible to users by default, via the Glance API. However, this process does not involve taking a checksum of the data in a newly created image location, and hence does not involve comparing the checksum field of the image (which is always visible to users) with the checksum of any added locations. This design opens the possibility that a malicious user could create an image in Glance, set an additional location on that image pointing to an altered image, then delete the original location, so that consumers of the original image would unwittingly be using the malicious image. Note, however, that this attack vector cannot change the original image’s checksum, and it is limited to images that are owned by the attacker.

Contacts / References

Author: Robert Clark, IBM