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

Lipsync Skill 安全审计

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

>

第三方安全检查结论

先别安装或运行

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

安装步骤会下载并执行第三方 npm 软件包

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

Skill 指示全局安装 `@runcomfy/cli`,或用 `npx -y` 自动下载并执行它。全局安装会持久更改用户的工具环境;两种方式都会运行该软件包所含代码。

为什么需要注意

若软件包、其依赖或发布账户被入侵,安装或执行过程可能访问当前用户可访问的文件、环境变量和凭据。全局安装还可能改变已有 CLI 版本。

这是可执行的安装与登录流程,不只是说明性警告。`npm i -g` 会持久安装第三方 CLI;`npx -y` 会自动取得并运行该包。其后还会让该 CLI 接触 RunComfy 登录令牌。源码同时要求只通过包管理器安装并禁止管道执行任意远程脚本,这降低了一类风险,但不能验证 npm 包本身。用户可要求锁定并审核具体版本,或在隔离环境中使用。

SKILL.md:30来自说明文档打开原文件
```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>
查看另外 1 个位置
SKILL.md:219来自说明文档打开原文件
- **Consent**: see the "Consent" section above. Lipsync is dual-use; refuse user requests targeting real people without consent.- **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**.- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var 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 项风险
高风险

人脸、视频和声音素材会交由远程模型服务处理

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

命令把肖像、源视频和音频的 URL 放入任务 JSON;CLI 随后把任务提交给 RunComfy 模型 API。即使只传 URL,远程服务也必须访问相应素材才能生成结果。

为什么需要注意

素材可能包含生物特征、声音、未发布视频或带访问凭据的私有 URL。远程处理会把这些数据及 URL 暴露给 RunComfy 的处理链,并可能受其保留、日志和下游模型提供商政策约束。

该 Skill 的实际流程会把用户提供的视频、音频或肖像 URL 提交给 RunComfy 模型 API,并由 CLI 下载生成结果。执行这些命令时,相应素材会由远程服务获取和处理,可能涉及人脸、声音及视频隐私。用户可要求作者说明保存期限、二次使用政策和数据处理地区,并只提供获授权且可撤销访问的素材 URL。

SKILL.md:111来自说明文档打开原文件
```bashruncomfy run sync/sync/lipsync/v2/pro \  --input '{    "video_url": "https://your-cdn.example/source-video.mp4",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
查看另外 2 个位置
SKILL.md:136来自说明文档打开原文件
```bashruncomfy run bytedance/omnihuman/api \  --input '{    "image_url": "https://your-cdn.example/portrait.jpg",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
SKILL.md:214来自说明文档打开原文件
The skill classifies user intent — source video + audio? portrait still + audio? script only? — picks the matching route, and invokes `runcomfy run` with the 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`.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
中风险

同意限制完全依赖操作者,无法阻止未经同意的真人仿冒

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

Skill 明确说明自身不对输入设门槛,并把责任交给操作者。它能够用一张肖像和一段音频生成同一身份的说话视频,甚至批量制作多语言版本。

为什么需要注意

如果操作者忽略检查,可生成看似由真人说出其未说过内容的视频,用于冒充、诽谤、欺诈或未经授权的广告。声音与人脸分别获得同意的要求没有技术执行机制。

文档确实要求拒绝针对未获同意真人的请求,但同时明确表示 Skill 本身不验证或阻止输入,因此控制效果取决于代理或操作者是否遵守。其功能可用一张肖像和音频生成说话视频,并以同一身份批量生成多语言版本;若操作者跳过同意检查,可能造成真人仿冒。用户可要求在每次运行前记录肖像权与声音授权,并限制批处理。

SKILL.md:47来自说明文档打开原文件
Driving a real person's mouth from a separate audio track is dual-use. Refuse user requests that target real public figures without consent, or that aim at defamatory or sexually explicit synthetic media. The skill itself does not gate inputs — the responsibility rests with the operator.
查看另外 4 个位置
SKILL.md:79来自说明文档打开原文件
**OmniHuman** — `bytedance/omnihuman/api` *(default for avatar-style)*> ByteDance's audio-driven full-body avatar. One portrait + one audio → video where the subject speaks / gestures naturally. Listed under RunComfy's `/feature/lip-sync` as the curated default.> Pick for: UGC voiceover, virtual presenter, dubbed product demo from a single portrait.> Avoid for: lip-sync onto an existing **video** (no portrait, want to preserve original motion) — use **Sync Labs v2** instead.
SKILL.md:180来自说明文档打开原文件
### Multi-language launch (same identity, many languages)- **Route 2 (OmniHuman)** with one portrait + N different audio files. Same identity holds across all dubs.
SKILL.md:225来自说明文档打开原文件
  - When the output diverges from the prompt (wrong identity, broken sync), suspect the reference asset.- **Voice provenance**: confirm the speaker in the audio has consented to having their voice paired with the target face. Both rights must be in hand.- **Outbound endpoints (allowlist)**: only `model-api.runcomfy.net` and `*.runcomfy.net` / `*.runcomfy.com`. No telemetry.
SKILL.md:136来自说明文档打开原文件
```bashruncomfy run bytedance/omnihuman/api \  --input '{    "image_url": "https://your-cdn.example/portrait.jpg",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。发现 1 项风险
中风险

默认选择高级模型可能在未确认价格的情况下产生账户费用

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

Skill 将 Sync Labs v2 Pro 指定为高级任务的默认模型,同时明确标准版适合成本敏感任务,但没有要求在提交远程任务前展示价格或取得费用确认。

为什么需要注意

如果 RunComfy 账户按调用、时长或生成量计费,自动采用 Pro 路由可能消耗余额或产生高于预期的费用,批量任务的影响更大。

文档把 Pro 设为高级场景的默认选项,并明确把标准版定位为成本敏感任务的替代方案,说明不同路线存在成本差异;但流程没有展示价格确认步骤。若代理直接采用默认 Pro 并提交任务,用户可能在不知道具体价格时使用更昂贵的服务。实际计费金额和机制在所给源码中没有说明,用户可要求执行前报告模型、预计价格和任务数量并取得确认。

SKILL.md:57来自说明文档打开原文件
**Sync Labs sync v2 Pro** — `sync/sync/lipsync/v2/pro` *(default for premium)*> Sync Labs' premium lip-sync — state-of-the-art mouth motion onto an existing video. Preserves the rest of the frame untouched.> Pick for: hero-quality dubs, lipsync on professionally-shot video, foreign-language dubbing where mouth fidelity matters most.> Avoid for: cost-sensitive batch jobs — drop to **sync v2**.
查看另外 2 个位置
SKILL.md:111来自说明文档打开原文件
```bashruncomfy run sync/sync/lipsync/v2/pro \  --input '{    "video_url": "https://your-cdn.example/source-video.mp4",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```
SKILL.md:108来自说明文档打开原文件
### Invoke```bashruncomfy run sync/sync/lipsync/v2/pro \  --input '{    "video_url": "https://your-cdn.example/source-video.mp4",    "audio_url": "https://your-cdn.example/voiceover.mp3"  }' \  --output-dir ./out```

Skill 逻辑拆解

8 个说明模块

此 Skill 根据输入类型在多种 RunComfy 模型之间路由:现有视频加音频、肖像加音频,或仅脚本。随后调用 `runcomfy run`,由 CLI 向远程模型 API 提交任务、轮询状态并下载结果。

查看原文
SKILL.md:53来自说明文档打开原文件
Listed newest first within each subtype. The agent picks one route based on: input shape (portrait still + audio vs source video + audio vs script-only), quality tier, and budget.
SKILL.md:214来自说明文档打开原文件
The skill classifies user intent — source video + audio? portrait still + audio? script only? — picks the matching route, and invokes `runcomfy run` with the 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 要求使用 RunComfy 账户登录;令牌会保存在用户配置目录,CI 也可通过环境变量提供令牌。

查看原文
SKILL.md:34来自说明文档打开原文件
# 2. Sign inruncomfy login              # or in CI: export RUNCOMFY_TOKEN=<token>
SKILL.md:220来自说明文档打开原文件
- **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**.- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var 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**.

Skill 承认换口型具有双重用途,并要求拒绝针对未经同意的真人以及诽谤或色情合成媒体的请求;但输入端没有技术性拦截,执行者需要自行落实这些限制。

查看原文
SKILL.md:47来自说明文档打开原文件
Driving a real person's mouth from a separate audio track is dual-use. Refuse user requests that target real public figures without consent, or that aim at defamatory or sexually explicit synthetic media. The skill itself does not gate inputs — the responsibility rests with the operator.
SKILL.md:218来自说明文档打开原文件
- **Consent**: see the "Consent" section above. Lipsync is dual-use; refuse user requests targeting real people without consent.- **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**.
SKILL.md:225来自说明文档打开原文件
  - When the output diverges from the prompt (wrong identity, broken sync), suspect the reference asset.- **Voice provenance**: confirm the speaker in the audio has consented to having their voice paired with the target face. Both rights must be in hand.- **Outbound endpoints (allowlist)**: only `model-api.runcomfy.net` and `*.runcomfy.net` / `*.runcomfy.com`. No telemetry.
从这里开始 · 工作说明SKILL.md
lipsync
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 4 个章节,可在原文件中查看。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文

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

  • SKILL.md工作说明

代码和说明中提到的操作

运行命令
SKILL.md:3来自说明文档打开原文件
name: lipsyncallowed-tools: Bash(runcomfy *)displayName: "Lipsync"
SKILL.md:30来自说明文档打开原文件
```bash# 1. Install (see runcomfy-cli skill for details)
SKILL.md:110来自说明文档打开原文件
```bashruncomfy run sync/sync/lipsync/v2/pro \
连接外部网站
SKILL.md:18来自说明文档打开原文件
  an audio track.homepage: https://www.runcomfy.comlicense: MIT
SKILL.md:26来自说明文档打开原文件
[runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=lipsync) · [Sync Labs models](https://www.runcomfy.com/models/sync/sync/lipsync/v2?utm_source=skills.sh&utm_medium=skill&utm_campaign=lipsync) · [CLI docs](https://docs.runcomfy.com/cli/introduction?utm_source=skills.sh&utm_medium=skill&utm_campaign=lipsync)
SKILL.md:43来自说明文档打开原文件
CLI deep dive: [`runcomfy-cli`](https://www.skills.sh/agentspace-so/runcomfy-agent-skills/runcomfy-cli) skill.
安装其他软件包
SKILL.md:32来自说明文档打开原文件
# 1. Install (see runcomfy-cli skill for details)npm i -g @runcomfy/cli      # or:  npx -y @runcomfy/cli --version
SKILL.md:219来自说明文档打开原文件
- **Consent**: see the "Consent" section above. Lipsync is dual-use; refuse user requests targeting real people without consent.- **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**.- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var in CI / containers.
读取了多少行
237
文件校验值(用于核对版本)
a97859611002e29ca0549378c987d20d4370cafbef9d8ba937ceb926e8b421f4