[OSSA 2015-020] Glance storage quota bypass when token is expired (CVE-2015-5286)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Fix Released
|
Critical
|
Mike Fedosin | ||
Juno |
Fix Released
|
Undecided
|
Unassigned | ||
Kilo |
Fix Released
|
Undecided
|
Unassigned | ||
OpenStack Security Advisory |
Fix Released
|
Undecided
|
Tristan Cacqueray |
Bug Description
About a year ago it was a vulnerability called 'Glance user storage quota bypass': https:/
The fix was proposed in master and all other stable branches, but it turned out, that it doesn't completely remove the issue and any user still can exceed the quota.
It happens in case if user token is expired during file upload and when glance tries to update image status from 'saving' to 'active'. Then glance gets Unauthenticated exception from registry server and fails with 500 error. On the other side garbage file is left in storage.
Steps to reproduce mostly coincide with the related from the previous bug, but in general it is:
1. Set some value (like 1Gb) to user_storage_quota in glance-api.conf and restart the server.
2. Make sure that your token will expire soon, when you'll be able to create an image instance in DB and begin the upload, but the token will expire during it.
3. Create an image, begin the upload and quickly remove the image with 'glance image-delete'.
4. After the upload check that image is not in the list, i.e. it's deleted, and file is still located in the store.
5. Perform steps 2-4 several times to make sure that user quota is exceeded.
Related script (test_images.py from here https:/
Glance api v2 is affected as well, but only if registry db_api is enabled.
CVE References
Changed in glance: | |
assignee: | nobody → Mike Fedosin (mfedosin) |
Changed in glance: | |
milestone: | liberty-rc1 → ongoing |
tags: | added: liberty-rc-potential |
Changed in ossa: | |
status: | Incomplete → In Progress |
assignee: | nobody → Tristan Cacqueray (tristan-cacqueray) |
Changed in ossa: | |
status: | In Progress → Fix Committed |
summary: |
- Glance storage quota bypass when token is expired + Glance storage quota bypass when token is expired (CVE-2015-5286) |
Changed in glance: | |
milestone: | ongoing → liberty-rc2 |
information type: | Private Security → Public Security |
summary: |
- Glance storage quota bypass when token is expired (CVE-2015-5286) + [OSSA 2015-020] Glance storage quota bypass when token is expired + (CVE-2015-5286) |
Changed in glance: | |
status: | Triaged → In Progress |
description: | updated |
tags: | added: kilo-backport-potential |
Changed in glance: | |
status: | In Progress → Fix Committed |
Changed in glance: | |
status: | Fix Committed → Fix Released |
Changed in ossa: | |
status: | Fix Committed → Fix Released |
Changed in glance: | |
milestone: | liberty-rc2 → 11.0.0 |
Thanks Mike. This is a legitimate issue.
The above patch looks good for v1 and v2. Can you please apply the same for import task too?
Thanks!