Executive brief
OpenStack Ironic, a service used to manage and deploy bare-metal servers, is vulnerable to a denial-of-service attack. An authorized user can provide a specially crafted file path (such as a link to an infinite data stream) during the server deployment process, causing the system to hang indefinitely while trying to calculate a checksum. This can exhaust the system's processing capacity, preventing other users from deploying servers and effectively shutting down data center provisioning operations.
Technical details
A logic sequencing error in OpenStack Ironic's image handling code allows for uncontrolled resource consumption. The vulnerability exists because the `_cache_and_convert_image` function in `deploy_utils.py` invokes checksum calculations via `get_checksum_and_algo` before performing file path validation (the blocklist check introduced in OSSA-2025-001). An authenticated attacker with permissions to modify `node.instance_info` can specify a URL such as `file:///dev/zero`. This causes the `compute_file_checksum` function to enter an infinite loop while attempting to hash the stream, permanently stalling a conductor worker thread. Repeated requests can exhaust the thread pool, leading to a full service denial-of-service. Patches have been released across multiple branches (Antelope, Caracal, Epoxy, Flamingo, Gazpacho, Hibiscus) to move validation logic before checksumming.
Affected products
- OpenStack Ironic >=23.0.4 <29.0.6, >=30.0.0 <32.0.2, >=33.0.0 <35.0.2
Timeline
- 2026-04-25: disclosed: Bug reported to OpenStack Launchpad
- 2026-04-30: patched: Fix committed to Ironic repository
- 2026-05-14: advisory: CVE published to NVD
- 2026-05-19: advisory: OpenStack Security Advisory OSSA-2026-013 released