OpenStack Block Storage (Cinder)
Go to file
Brian Rosmaita db98dc2070 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 b207be3278f3dab6cfe945bd3d307db168f6f6c7)
2024-07-03 11:46:13 +05:30
api-ref/source Add the os-extend_volume_completion volume action 2024-02-16 18:14:33 +01:00
cinder CVE-2024-32498: Check for external qcow2 data file 2024-07-03 11:46:13 +05:30
doc Dell PowerMax: Fix SnapVx unlink failure 2024-03-25 02:26:13 +00:00
etc/cinder Add Cinder NFS driver for Dell PowerStore 2022-07-28 01:27:22 -07:00
playbooks Add fips check jobs 2023-04-18 19:45:55 +00:00
rally-jobs Remove Block Storage API v2 2021-06-04 17:21:28 -04:00
releasenotes CVE-2024-32498: Check for external qcow2 data file 2024-07-03 11:46:13 +05:30
roles Native multibackend-matrix Zuul v3 job 2021-09-08 01:05:44 +02:00
tools Add fips check jobs 2023-04-18 19:45:55 +00:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-10-17 19:09:37 +05:30
.gitignore db: Enable auto-generation of database migrations 2022-02-20 19:06:01 +00:00
.gitreview Update .gitreview for stable/2024.1 2024-03-18 08:48:48 +00:00
.pylintrc Pylint: add nvmet to ignored-modules 2023-01-20 10:28:08 -05:00
.stestr.conf Add .stestr.conf configuration 2017-10-10 00:46:42 +00:00
.zuul.yaml reno: Update master for Unmaintained branches 2024-03-13 12:56:42 +01:00
bindep.txt Use openstack-tox-py311 job 2023-08-18 18:55:23 -04:00
CONTRIBUTING.rst Ussuri contrib docs community goal 2020-03-05 14:11:48 -05:00
driver-requirements.txt Pure Storage - bump version numbers for 2024.1 (Caracal) 2023-12-21 17:32:32 -05:00
HACKING.rst Hacking: Remove C306, C308 checks 2023-09-14 15:18:58 -04:00
LICENSE Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
mypy-files.txt Merge "mypy: Add backup/rpcapi.py" 2023-12-15 20:02:50 +00:00
README.rst Merge "Refactor README links" 2020-01-22 11:44:36 +00:00
reno.yaml reno: Update master for Unmaintained branches 2024-03-13 12:56:42 +01:00
requirements.txt Merge "Hacking: Remove C306, C308 checks" 2024-02-21 16:00:04 +00:00
ruff.toml Experiment with ruff 2023-04-19 11:26:12 -04:00
setup.cfg Update python classifier in setup.cfg 2024-01-08 20:21:17 -08:00
setup.py Cleanup py27 support 2020-04-17 14:47:10 +02:00
test-requirements.txt Merge "Pure Storage - bump version numbers for 2024.1 (Caracal)" 2024-02-08 20:32:24 +00:00
tox.ini Update TOX_CONSTRAINTS_FILE for stable/2024.1 2024-03-18 08:48:51 +00:00

OpenStack Cinder

image

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

Python Cinderclient