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.
Why this conclusion was reached
1/4 dimensions flaggedDeclared resources and inferred behavior are broadly aligned.
1 high-risk artifacts or egress signals were extracted.
There is no explicit malicious chain in the report.
3 dependency or supply-chain issues need attention.
What drove the risk score up
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.
Most important evidence
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 Declared capability vs actual capability
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 Suspicious artifacts and egress
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
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| puppeteer | * | npm | No | Version not pinned; global install |
| edge-tts | * | pip | No | Version not pinned; calls Microsoft servers |
| Pillow | * | pip | No | Version not pinned |
| ffmpeg | static | remote_download | No | Downloaded from johnvansickle.com without integrity verification |
File composition
scripts/record-demo.mjs SKILL.md skill-card.md scripts/install-deps.sh