OpenStack Ironic Python Agent Chroot Command Injection Vulnerability
Vulnerability
A command injection vulnerability has been identified in OpenStack Ironic Python Agent (IPA) versions 1.0.0 through 11.5.0. The issue arises because IPA sometimes executes 'grub-install' from within a chroot environment of the deployed partition image. This behavior can lead to unauthorized code execution if a malicious image is used.
Impact
Exploitation of this vulnerability allows for arbitrary code execution within the IPA deployment ramdisk, with potential access to the host's /dev, /proc, and /sys directories. This could lead to a compromise of the Ironic provisioning workflow, especially if other nodes are sharing the same ramdisk.
Reproduction
To reproduce this vulnerability, upload a crafted disk image containing malicious 'grub-install' binaries or filenames with shell metacharacters. Then, deploy a node using the Ansible deploy driver, which will execute the 'grub-install' command in a chroot environment with bind-mounted access to system directories. This will result in the execution of the malicious code within the IPA context, potentially accessing sensitive information or interfering with other provisioning processes.
Remediation
A patch has been developed to add a configuration option in Ironic Python Agent that disables partition images by default. This patch can be applied to the Ironic Python Agent codebase.
Vulnerability Rating
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.
