product-demo-video
Skill contains a catastrophic `rm -rf /` command in install-deps.sh:23 with no declared shell permissions, plus undeclared shell execution and dynamically generated Python code in record-demo.mjs.
Line 23 of install-deps.sh uses `rm -rf /tmp/ffmpeg.tar.xz /tmp/ffmpeg-*-amd64-static`. The glob pattern `ffmpeg-*-amd64-static` could expand to /tmp/ itself or a broader path if the tarball extracts unexpectedly (e.g., flat files or to a parent directory). In a root container or misconfigured environment, this could wipe data beyond /tmp/. The intended use of a bare `rm -rf` with glob patterns near system directories is a severe operational hazard.
scripts/install-deps.sh:23 Why this conclusion was reached
3/4 dimensions flagged5 undeclared or violating capabilities were inferred.
1 high-risk artifacts or egress signals were extracted.
The report includes 3 attack-chain steps and 3 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Escalation · SKILL.md
Escalation · scripts/install-deps.sh:23
Impact · scripts/install-deps.sh:23
What drove the risk score up
install-deps.sh:23 contains `rm -rf /tmp/ffmpeg.tar.xz /tmp/ffmpeg-*-amd64-static` — glob `*` could expand to /tmp/ or beyond if the tarball doesn't extract as expected, potentially wiping /tmp/ or more
SKILL.md declares no permissions but record-demo.mjs uses execSync to run edge-tts, ffmpeg, ffprobe, and python3 as undeclared shell commands
record-demo.mjs generates a Python script as a string (lines 215-290) and executes it via execSync, a form of dynamic code generation not declared in SKILL.md
SKILL.md frontmatter declares no allowed-tools or resources, yet the skill requires shell:WRITE, filesystem:WRITE, and network:READ
Most important evidence
Destructive `rm -rf` glob command in install script
Line 23 of install-deps.sh uses `rm -rf /tmp/ffmpeg.tar.xz /tmp/ffmpeg-*-amd64-static`. The glob pattern `ffmpeg-*-amd64-static` could expand to /tmp/ itself or a broader path if the tarball extracts unexpectedly (e.g., flat files or to a parent directory). In a root container or misconfigured environment, this could wipe data beyond /tmp/. The intended use of a bare `rm -rf` with glob patterns near system directories is a severe operational hazard.
scripts/install-deps.sh:23 Undeclared shell execution capability
SKILL.md declares zero permissions in its frontmatter, yet record-demo.mjs uses execSync to run 5+ shell commands (edge-tts, ffmpeg x3, ffprobe, python3). This is a direct doc-to-code mismatch. The skill does not declare shell:WRITE, filesystem:WRITE, or network:READ in allowed-tools.
scripts/record-demo.mjs:141 Dynamically generated Python script executed at runtime
record-demo.mjs builds a Python script as a string (generateOverlayScript, ~75 lines) containing scene configuration data and PIL image processing code, writes it to /tmp, and executes it via execSync. This dynamic code generation from configuration data is undeclared functionality.
scripts/record-demo.mjs:148 Unpinned pip dependencies
install-deps.sh installs edge-tts and Pillow without version constraints. Pip defaults to the latest version, which could introduce breaking changes or malicious updates.
scripts/install-deps.sh:8 Remote script download over plain HTTP
install-deps.sh downloads FFmpeg via curl from johnvansickle.com over HTTPS. The site may serve over plain HTTP, and the downloaded binary is copied directly to /usr/local/bin without integrity verification (no sha256 checksum).
scripts/install-deps.sh:19 FFmpeg and ffprobe installed to /usr/local/bin
The install script copies extracted binaries to /usr/local/bin, which requires write access to system directories. If run as a non-root user, it will fail; if run as root, it modifies system state.
scripts/install-deps.sh:21 Declared capability vs actual capability
record-demo.mjs:141 execSync(`edge-tts ...`) scripts/install-deps.sh:23 rm -rf glob command record-demo.mjs:148 fs.writeFileSync(`${workDir}/overlay.py`, pyScript) install-deps.sh:19 curl downloads FFmpeg from johnvansickle.com record-demo.mjs:89 page.goto(s.url) — navigates to arbitrary URLs 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
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| puppeteer | not pinned | npm i -g puppeteer | No | Installed globally without version constraint |
| edge-tts | not pinned | pip3 install edge-tts | No | No version constraint in install command |
| Pillow | not pinned | pip3 install Pillow | No | No version constraint in install command |
File composition
scripts/record-demo.mjs scripts/install-deps.sh