OpenStack Ironic Python Agent allows root command execution via NTP config
Unsanitized ntp_server values let project managers run arbitrary commands during ramdisk startup.
OpenStack has disclosed a command-injection flaw in Ironic Python Agent that lets an attacker execute arbitrary commands as root during early ramdisk startup.
The ntp_server configuration option is passed unsanitized into a shell command that runs with root privileges. An attacker who can supply that value can therefore take full control of the agent. The option can be set in an operator-built ramdisk, on the kernel command line through Ironic, or via an mDNS responder. In the most common deployment path, a user holding the Manager role on the project that owns the node is enough to trigger the issue.
Dmitry Tantsur of Red Hat and Tuomo Tanskanen of Ericsson Software Technology, working with the Metal3.io Security Team, reported the vulnerability. It affects Ironic Python Agent releases from 6.0.0 up through several later series; fixed packages are available for supported and unmaintained branches alike. A CVE identifier is still pending from MITRE.