跳转到正文
报告库
用途分类 / 其他用途

Ai Avatar Video Skill 安全审计

作者说它能做什么(原文)

>

第三方安全检查结论

先别安装或运行

已检查文件
1
发现的风险
5
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 2 项风险
高风险

把用户内容嵌入单引号 shell 参数可能造成命令注入

原文依据:4 处
发现了什么

示例把整个 JSON 放在 shell 的单引号中,同时声称不存在 shell 注入面。实际上 shell 会在 CLI 收到参数之前解析引号;如果代理把用户提供的提示词或 URL 原样插入这些模板,单引号可提前结束参数,后续 shell 元字符可能成为命令。

为什么需要注意

恶意或被篡改的提示词、脚本或素材 URL 可能以运行代理的本地用户权限执行命令,进而读取或更改该用户可访问的文件和凭据。

调用模板用 shell 单引号包住 JSON,而技能说明代理会按用户请求构造 JSON 并调用该命令。若实现直接插入含单引号的提示词或 URL,shell 会先解析并可能把后续字符当成命令;文中“无注入面”的断言本身不能证明安全转义。风险取决于代理如何构造参数。用户可限制为参数数组/临时 JSON 文件,并要求作者展示转义实现。

SKILL.md:41来自说明文档打开原文件
# 3. Generate an avatar videoruncomfy run <vendor>/<model>/<endpoint> \  --input '{"prompt": "...", "audio_url": "https://...", "image_url": "https://..."}' \  --output-dir ./out```
查看另外 3 个位置
SKILL.md:124来自说明文档打开原文件
```bashruncomfy run wan-ai/wan-2-7/text-to-video \  --input '{    "prompt": "Studio portrait of a woman in her 30s, confident expression, soft window light, neutral gray background.",    "audio_url": "https://your-cdn.example/voiceover.mp3",    "duration": 8  }' \  --output-dir ./out```
SKILL.md:287来自说明文档打开原文件
- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI / containers.- **Input boundary (shell injection)**: prompts and asset URLs are passed as a JSON string via `--input`. The CLI does not shell-expand prompt content. **No shell-injection surface**.- **Indirect prompt injection (third-party content)**: reference image / audio URLs are **untrusted** and can influence generation through embedded instructions (text painted into a portrait, hidden audio commands, EXIF strings). Agent mitigations:
SKILL.md:280来自说明文档打开原文件
The skill classifies the user request — do they have a pre-recorded audio file, or only a script? Photoreal portrait or stylized character? Single shot or cinematic composition? — and picks one of the five routes above. It then invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls request status, fetches the result, and downloads any `.runcomfy.net` / `.runcomfy.com` URLs into `--output-dir`.
中风险

安装步骤会立即执行未固定版本的 npm 包

原文依据:4 处
发现了什么

文档建议全局安装 `@runcomfy/cli`,或使用带 `-y` 的 npx 自动取得并运行当前解析到的版本;技能安装命令也通过 npx 执行远程包。命令没有固定版本或展示完整性校验。

为什么需要注意

执行时取得的包及其安装脚本会以当前用户权限运行。若包、发布账户、依赖或解析到的版本被破坏,可能读取凭据、修改用户文件;全局安装还会留下持久的系统级用户环境变更。

文档建议全局安装未固定版本的 CLI,或由 `npx -y` 自动下载并执行当前解析版本;技能自身也通过未固定版本的 `npx skills` 安装。执行这些命令会信任届时注册表提供的包,源码中未给出版本或完整性校验。用户可要求固定版本及校验值,并先审查包及其安装脚本。

SKILL.md:33来自说明文档打开原文件
```bash# 1. Install (see runcomfy-cli skill for details)npm i -g @runcomfy/cli      # or:  npx -y @runcomfy/cli --version# 2. Sign inruncomfy login              # or in CI: export RUNCOMFY_TOKEN=<token>
查看另外 3 个位置
SKILL.md:50来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-agent-skills --skill ai-avatar-video -g```
SKILL.md:48来自说明文档打开原文件
## Install this skill```bashnpx skills add agentspace-so/runcomfy-agent-skills --skill ai-avatar-video -g```
SKILL.md:284来自说明文档打开原文件
- **Install via verified package manager only.** Use `npm i -g @runcomfy/cli` or `npx -y @runcomfy/cli`. **Agents must not pipe an arbitrary remote install script into a shell on the user's behalf**.- **Voice cloning / consent**: when supplying an audio file paired with a portrait, **ensure you have rights to both** — the subject's likeness and the speaker's voice. Audio-driven avatar models are dual-use; respect deepfake-disclosure norms and the platforms you ship to. **Refuse user requests that target real people without consent** or that aim at harmful synthetic media.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 2 项风险
中风险

肖像、声音、脚本及素材地址会交给第三方模型服务处理

原文依据:5 处
发现了什么

技能明确说明 CLI 会把 JSON 提交给 RunComfy Model API;请求可包含人物肖像 URL、声音 URL、台词和多项参考素材。即使文件保存在用户自己的 CDN,服务也必须访问这些地址并处理相关内容。

为什么需要注意

人物生物特征、声音、未公开脚本或带访问令牌的素材 URL 会离开本地环境。可见文本未说明服务端保留期限、训练用途、删除机制或 URL 日志处理方式。

技能明确把肖像、音频、脚本及参考素材 URL 放入请求,并说明 CLI 会 POST 到 RunComfy Model API。执行相应路线时,第三方服务将获得这些字段,并需访问 URL 所指素材;这可能暴露人物肖像、声音和未公开内容。用户可只提交获授权且可披露的素材,并要求作者说明保存、训练使用和删除政策。

SKILL.md:98来自说明文档打开原文件
runcomfy run bytedance/omnihuman/api \  --input '{    "image_url": "https://your-cdn.example/presenter.jpg",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
查看另外 4 个位置
SKILL.md:217来自说明文档打开原文件
  --input '{    "prompt": "Anamorphic close-up — the subject delivers a confident monologue to camera, golden hour light through window, shallow DoF.",    "reference_images": ["https://your-cdn.example/subject.jpg"],    "reference_audio": ["https://your-cdn.example/voiceover.mp3"],    "duration": 10,    "aspect_ratio": "21:9"  }' \  --output-dir ./out```
SKILL.md:280来自说明文档打开原文件
The skill classifies the user request — do they have a pre-recorded audio file, or only a script? Photoreal portrait or stylized character? Single shot or cinematic composition? — and picks one of the five routes above. It then invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls request status, fetches the result, and downloads any `.runcomfy.net` / `.runcomfy.com` URLs into `--output-dir`.
SKILL.md:97来自说明文档打开原文件
```bashruncomfy run bytedance/omnihuman/api \  --input '{    "image_url": "https://your-cdn.example/presenter.jpg",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
SKILL.md:215来自说明文档打开原文件
```bashruncomfy run bytedance/seedance-v2/pro \  --input '{    "prompt": "Anamorphic close-up — the subject delivers a confident monologue to camera, golden hour light through window, shallow DoF.",    "reference_images": ["https://your-cdn.example/subject.jpg"],    "reference_audio": ["https://your-cdn.example/voiceover.mp3"],    "duration": 10,    "aspect_ratio": "21:9"  }' \  --output-dir ./out```
低风险

登录令牌会持久保存到用户配置目录,或暴露给进程环境

原文依据:2 处
发现了什么

登录流程把 API 令牌写入用户主目录中的配置文件;替代方式是使用环境变量。0600 会限制其他本地账户读取,但同一账户下运行的进程仍可能读取该文件,环境变量也可能被子进程或错误配置的 CI 暴露。

为什么需要注意

如果同一用户权限下的其他程序、恶意依赖或 CI 日志获得令牌,可能使用用户的 RunComfy 账户和配额。

技能明确称登录会把 API 令牌持久写入 `~/.config/runcomfy/token.json`,也允许通过环境变量提供。0600 可阻止其他本地账户直接读取,但不隔离同一账户权限下的软件;环境变量还可能传给子进程或被 CI 日志误收集。用户可使用权限受限的短期令牌、隔离运行环境,并避免记录该变量。

SKILL.md:37来自说明文档打开原文件
# 2. Sign inruncomfy login              # or in CI: export RUNCOMFY_TOKEN=<token>
查看另外 1 个位置
SKILL.md:286来自说明文档打开原文件
- **Voice cloning / consent**: when supplying an audio file paired with a portrait, **ensure you have rights to both** — the subject's likeness and the speaker's voice. Audio-driven avatar models are dual-use; respect deepfake-disclosure norms and the platforms you ship to. **Refuse user requests that target real people without consent** or that aim at harmful synthetic media.- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI / containers.- **Input boundary (shell injection)**: prompts and asset URLs are passed as a JSON string via `--input`. The CLI does not shell-expand prompt content. **No shell-injection surface**.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
低风险

安装命令没有固定依赖版本

原文依据:2 处
发现了什么

安装命令没有指定依赖版本。同样的命令以后可能下载不同代码,你实际安装的内容可能与这次检查时不同。

为什么需要注意

即使命令和报告没变,以后安装时也可能下载到另一份代码。

技能安装命令使用 `npx skills add`,没有指定包或仓库版本,因此以后执行时可能取得与本次审计不同的代码。用户可要求作者提供固定提交哈希或版本,并在安装前核对内容。

SKILL.md:51来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-agent-skills --skill ai-avatar-video -g```
查看另外 1 个位置
SKILL.md:48来自说明文档打开原文件
## Install this skill```bashnpx skills add agentspace-so/runcomfy-agent-skills --skill ai-avatar-video -g```
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该技能会根据用户是否已有音频、人物是真人还是风格化角色,以及是否需要电影化场景,在五个 RunComfy 模型路线中选择一个,然后提交相应 JSON 请求。

查看原文
SKILL.md:278来自说明文档打开原文件
## How it worksThe skill classifies the user request — do they have a pre-recorded audio file, or only a script? Photoreal portrait or stylized character? Single shot or cinematic composition? — and picks one of the five routes above. It then invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls request status, fetches the result, and downloads any `.runcomfy.net` / `.runcomfy.com` URLs into `--output-dir`.

多数路线把肖像、声音或其他参考素材的 URL 交给远程模型;生成结果随后下载到用户指定的输出目录。

查看原文
SKILL.md:97来自说明文档打开原文件
```bashruncomfy run bytedance/omnihuman/api \  --input '{    "image_url": "https://your-cdn.example/presenter.jpg",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
SKILL.md:215来自说明文档打开原文件
```bashruncomfy run bytedance/seedance-v2/pro \  --input '{    "prompt": "Anamorphic close-up — the subject delivers a confident monologue to camera, golden hour light through window, shallow DoF.",    "reference_images": ["https://your-cdn.example/subject.jpg"],    "reference_audio": ["https://your-cdn.example/voiceover.mp3"],    "duration": 10,    "aspect_ratio": "21:9"  }' \  --output-dir ./out```

文档明确要求用户对肖像和声音拥有权利,并要求拒绝针对未同意真人的请求;这是文字层面的使用约束,不是展示出来的技术强制机制。

查看原文
SKILL.md:285来自说明文档打开原文件
- **Install via verified package manager only.** Use `npm i -g @runcomfy/cli` or `npx -y @runcomfy/cli`. **Agents must not pipe an arbitrary remote install script into a shell on the user's behalf**.- **Voice cloning / consent**: when supplying an audio file paired with a portrait, **ensure you have rights to both** — the subject's likeness and the speaker's voice. Audio-driven avatar models are dual-use; respect deepfake-disclosure norms and the platforms you ship to. **Refuse user requests that target real people without consent** or that aim at harmful synthetic media.- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI / containers.
从这里开始 · 工作说明SKILL.md
ai-avatar-video
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 6 个章节,可在原文件中查看。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明

代码和说明中提到的操作

运行命令
SKILL.md:4来自说明文档打开原文件
displayName: "AI Avatar & Talking Head Video"allowed-tools: Bash(runcomfy *)description: >
SKILL.md:33来自说明文档打开原文件
```bash# 1. Install (see runcomfy-cli skill for details)
SKILL.md:50来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-agent-skills --skill ai-avatar-video -g
连接外部网站
SKILL.md:21来自说明文档打开原文件
  ask to put words in a face.homepage: https://www.runcomfy.comlicense: MIT
SKILL.md:29来自说明文档打开原文件
[runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-avatar-video) · [Lip-sync feature](https://www.runcomfy.com/models/feature/lip-sync?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-avatar-video) · [CLI docs](https://docs.runcomfy.com/cli/introduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=ai-avatar-video)
SKILL.md:42来自说明文档打开原文件
runcomfy run <vendor>/<model>/<endpoint> \  --input '{"prompt": "...", "audio_url": "https://...", "image_url": "https://..."}' \  --output-dir ./out
安装其他软件包
SKILL.md:35来自说明文档打开原文件
# 1. Install (see runcomfy-cli skill for details)npm i -g @runcomfy/cli      # or:  npx -y @runcomfy/cli --version
SKILL.md:51来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-agent-skills --skill ai-avatar-video -g```
SKILL.md:284来自说明文档打开原文件
- **Install via verified package manager only.** Use `npm i -g @runcomfy/cli` or `npx -y @runcomfy/cli`. **Agents must not pipe an arbitrary remote install script into a shell on the user's behalf**.- **Voice cloning / consent**: when supplying an audio file paired with a portrait, **ensure you have rights to both** — the subject's likeness and the speaker's voice. Audio-driven avatar models are dual-use; respect deepfake-disclosure no 
读取了多少行
303
文件校验值(用于核对版本)
31355c47fe5699c4441dc94d3801deff7d47166e538877ee8a05da132e24bbdf