4aa6590a48
Brian Rosmaita
4aa6590a48
CVE-2024-32498: Check for external qcow2 data file
Adds code to image_utils to check for a qcow2 external data file, a recent feature of qemu which we do not support and which can be used maliciously. Advice from the qemu-img community is that it is dangerous to call qemu-img info on untrusted files, so we copy over the format_inspector module from Glance. This performs basic analysis on the image data file so we can detect problematic images before we call qemu-img info to get all the image attributes. It is expected that this code will eventually be added to oslo so it can be consumed by Glance, Cinder, and Nova. Because cinder itself may create qcow2 format images with a backing file in nfs-based backends, the glance format_inspector has been modified to optionally allow such files. Since we are monkeying with the format_inspector code, we also copy over its unit tests to prevent regressions and to add tests for the changed code. Includes an additional fix to prevent an issue where a user could mount a raw volume and write a qcow2 header with a larger virtual size on it. On reattaching the volume it would have the new larger virtual size avaialable without actually changing the size value in cinder. While we cannot prevent this we can prevent the user from using this volume again, which makes this exploit pointless. Co-authored-by: Dan Smith <dansmith@redhat.com> Co-authored-by: Felix Huettner <felix.huettner@mail.schwarz> Change-Id: I65857288b797cde573e7443ac6e7e6f57fedde01 Closes-bug: #2059809 (cherry picked from commit d6a186945e03649343af55b46ed8dfe0dd326e40) (cherry picked from commit db98dc207060da234c32a563c13cac1edbd62952) (cherry picked from commit 9e667b02b2c20b4ada18c1a472be152956284d45) (cherry picked from commit 5f5e86e3542866227b7339713148b5169d069f21)
OpenStack Cinder
OpenStack Cinder is a storage service for an open cloud computing service.
You can learn more about Cinder at:
Getting Started
If you'd like to run from the master branch, you can clone the git repo:
git clone https://opendev.org/openstack/cinder
If you'd like to contribute, please see the information in CONTRIBUTING.rst
You can raise bugs on Launchpad
Python client
Description
Languages
Python
99.7%
Smarty
0.3%