Use of MD5 in OpenStack Glance image signature (CVE-2015-8234)

Bug #1528826 reported by Adam Heczko
256
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Fix Released
Low
MOS Glance
9.x
Fix Released
Low
MOS Glance

Bug Description

Observed on: MOS 8.0 / Liberty release

Problem description:
In the OpenStack Liberty release, the Glance project added support for image signature verification.
http://specs.openstack.org/openstack/glance-specs/specs/liberty/image-signing-and-verification-support.html
The verification code was added in the following git commit
https://github.com/openstack/glance/commit/484ef1b40b738c87adb203bba6107ddb4b04ff6e
Unfortunately the design of this signature verification method is flawed by design.
The generalized approach to creating signatures of content is to apply a hash to the content and then encrypt it in some manner. Consider that the signature is defined to use hash=sha256 and cipher=rsa we can describe the signature computation as
signature = rsa(sha256(content))
In the case of verifying a disk image, the content we care about verifying is the complete disk image file. Unfortunately, the glance specification chose *not* to compute the signature against the disk image file. Glance already had an MD5 checksum calculated for the disk image file, so they instead chose to compute the signature against the MD5 checksum instead. ie glance is running
signature = rsa(sha256(md5(disk-image-content)))
This degrades the security of the system to that of the weakest hash, which is obviously MD5 here.

Upstream bug report:
https://bugs.launchpad.net/glance/+bug/1516031
https://wiki.openstack.org/wiki/OSSN/OSSN-0061

Solution proposal:
Users concerned with image security should be aware that the current Glance signature algorithm is not secure by today cryptographic standards.
This should be explained in MOS release notes.
A specification for a fix has been proposed by the Glance development team and is targeted for the Mitaka release.

CVE References

Changed in mos:
importance: Undecided → Low
milestone: none → 8.0
assignee: nobody → MOS Glance (mos-glance)
tags: added: release-notes
Revision history for this message
ruhe (ruhe) wrote :

Marked as Won't Fix for 8.0 since we entered SoftCodeFreeze stage and the bug was marked as Low priority. Adam, please let us know if you think that priority should be in (Critical, High) and thus bug should be fixed in 8.0.

Changed in mos:
status: New → Incomplete
status: Incomplete → Opinion
status: Opinion → Won't Fix
Revision history for this message
Adam Heczko (aheczko-mirantis) wrote :

Doesn't make much sense to fix it as feature is broken by design.

tags: added: area-glance
tags: added: 8.0
tags: added: release-notes-8.0-done
removed: 8.0 release-notes
Revision history for this message
Mike Fedosin (mfedosin) wrote :

Fix was commited and released in Mitaka https://review.openstack.org/#/c/255584/

Revision history for this message
Alexey Galkin (agalkin) wrote :

Fixed in upsteam, verifcated that code was synced on 9.0-231.

To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.