The vulnerability is a Denial of Service in OpenStack Ironic's image handling process. It stems from insufficient validation of file:// URLs provided as the image source. The core issue lies in the build_instance_info_for_deploy function, which, prior to the patch, would not validate the path of a file:// URL against a security blocklist. This allowed an attacker to specify a local device file, such as file:///dev/zero, as the image source.
The build_instance_info_for_deploy function would then call _cache_and_convert_image to process this malicious URL. This would lead to the system attempting to calculate a checksum on /dev/zero, a special file that produces an infinite stream of null characters. This action consumes the conductor thread indefinitely, leading to a Denial of Service as the thread becomes permanently unavailable.
The patch addresses this by introducing an explicit validation step. It adds a call to image_service.FileImageService().validate_href() within build_instance_info_for_deploy for any file:// URL, ensuring the path is checked against a blocklist before any processing, such as checksumming in _cache_and_convert_image, is initiated. This prevents the system from attempting to read from dangerous device files.