漏洞总结:通过租户控制的二进制文件执行 chroot 实现命令注入 漏洞概述 漏洞类型:命令注入 (Command Injection) 严重程度:Critical (严重) 触发机制:攻击者通过提供包含恶意 二进制文件的租户磁盘镜像,利用 Ansible 部署工具在 环境中执行该恶意程序。 核心风险:恶意代码以 root 权限在部署节点(Provisioning Node)上执行,可能导致控制平面被接管。 影响范围 受影响组件:OpenStack Ironic (ironic-python-agent) 受影响场景: - 使用 Ansible 进行部署的节点。 - 租户拥有磁盘镜像控制权的环境。 - 涉及 BIOS 引导和分区镜像 (Partition Images) 的场景。 潜在后果: - 攻击者可以执行任意命令。 - 可能窃取节点内存或提取 Agent Token。 - 在配置网络中横向移动,影响其他 Ironic 实例。 修复方案 1. 默认禁用分区镜像:通过配置标志 (Flag) 将 Ironic 中启用分区镜像的默认行为改为禁用。 2. 强化执行限制:对 等二进制文件的执行进行更严格的白名单或沙箱限制。 3. 代码重构:重新设计代码逻辑,确保在不需要执行 的场景(如 BIOS 引导)下不触发相关代码路径。 利用代码 (POC) 页面中未提供具体的可执行 POC 代码,但描述了利用方式: > Attack Vector: Verified. A tenant supplying a crafted image with malicious grub-install binaries or filenames with shell metacharacters achieves code execution. 利用步骤简述: 1. 租户准备一个包含恶意 二进制文件的磁盘镜像。 2. 在部署过程中,Ansible playbook 会在 环境中执行该镜像中的二进制文件。 3. 恶意代码获得 root 权限执行。