product-demo-video
Legitimate product demo video creator with documented risks; shell command injection concern via unsanitized narration is acknowledged but no malicious chain exists.
为什么得出这个结论
1/4 个维度触发声明资源与推断能力基本一致。
提取到 1 个高危 IOC 或外联信号。
没有形成明确的恶意路径。
发现 3 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
Narration text is interpolated into execSync shell commands without sanitization. skill-card.md partially acknowledges this.
Downloads FFmpeg static binary from johnvansickle.com without integrity verification (no checksum).
install-deps.sh uses npm i -g and pip install globally, making broad system changes.
最关键的证据
Shell command injection via unsanitized narration
The narration text from SCENES array is interpolated directly into edge-tts shell commands without sanitization. A malicious user-provided narration could break out of the shell command.
scripts/record-demo.mjs:112 Remote binary download without integrity check
FFmpeg static binary is downloaded from johnvansickle.com without a checksum or signature verification. This could be replaced by a man-in-the-middle attack.
scripts/install-deps.sh:19 Unpinned package versions
Dependencies are installed without version pinning (npm i -g puppeteer, pip3 install edge-tts Pillow). This can lead to supply chain attacks via dependency confusion or typosquatting.
scripts/install-deps.sh:6-11 Shell execution partially undeclared in SKILL.md
SKILL.md describes the tool stack but does not explicitly declare that arbitrary shell commands are executed via Node.js execSync. The skill-card.md does acknowledge 'shell command construction during demo generation' as a known risk.
SKILL.md:1 声明能力 vs 实际能力
SKILL.md documents subprocess usage for FFmpeg, edge-tts record-demo.mjs:47 — fs.mkdirSync, fs.writeFileSync record-demo.mjs:56 — page.goto(s.url) for browser recording record-demo.mjs:107 — puppeteer.launch + screenshot child_process execSync inherits env; no explicit env harvesting No credential harvesting observed 可疑产物与外联
rm -rf / scripts/install-deps.sh:23
https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz scripts/install-deps.sh:19
https://yourapp.dev/ scripts/record-demo.mjs:56
https://yourapp.dev/feature1/ scripts/record-demo.mjs:67
https://clawhub.ai/user/xiazai77 skill-card.md:7
https://clawhub.ai/xiazai77/product-demo-video skill-card.md:30
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| puppeteer | * | npm | 否 | Version not pinned; global install |
| edge-tts | * | pip | 否 | Version not pinned; calls Microsoft servers |
| Pillow | * | pip | 否 | Version not pinned |
| ffmpeg | static | remote_download | 否 | Downloaded from johnvansickle.com without integrity verification |
文件构成
scripts/record-demo.mjs SKILL.md skill-card.md scripts/install-deps.sh