T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:70
- Finding
- Unpinned Third-Party Packages May Execute Mutable Remote Code## Vulnerability Details **File Location**: `SKILL.md:70-74`; additional occurrences in `references/getting-started.md:37-40` and `references/getting-started.md:59` **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code `SKILL.md:70-74`: ```shell The full REST contract is at https://viraloutliers.com/openapi.json. If Node 20+ is available, the official CLI wraps every skill with the same key (JSON output, `--wait` polls async jobs): npx viral-outliers search-outliers --query "home workout" --platforms tiktok --min-outlier-score 5 ``` `references/getting-started.md:37-40`: ```shell Or use the official CLI (npm package viral-outliers, Node 20+; one command per skill, JSON output, --wait for async jobs): npx viral-outliers login --key so_live_YOUR_KEY npx viral-outliers search-outliers --query "home workout" --platforms tiktok --min-outlier-score 5 ``` `references/getting-started.md:59`: ```shell A ready-made agent skill for this workflow: OpenClaw users run `openclaw skills install @MatsClaes2/viral-outliers`; Hermes users run `hermes skills search viral outliers`; it is also discoverable at https://viraloutliers.com/.well-known/skills/index.json. Shell-native agents (Claude Code, CI) can use the CLI instead: `npm i -g viral-outliers` (docs at https://viraloutliers.com/docs/cli). ``` ### Technical Analysis The documented commands resolve and execute third-party packages without specifying an exact reviewed version, immutable revision, or integrity digest. In particular, `npx viral-outliers ...` can download the currently resolved npm release and immediately run its executable. A global npm installation can also execute package lifecycle scripts and places mutable third-party executables in the user's command path. The OpenClaw installation command similarly identifies a remotely sourced Skill by package name rather than a reviewed immutable revision. Consequently, the code executed by users can chan ...[truncated 1938 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every executable dependency to a specific reviewed version, for example: ```shell npx --yes viral-outliers@1.1.0 search-outliers ... npm install --global viral-outliers@1.1.0 ``` 2. Prefer a project-local installation governed by a committed lockfile rather than `npx` or a global installation: ```shell npm install --save-exact viral-outliers@1.1.0 npm ci ``` 3. Verify package provenance, publisher identity, signatures or attestations, and registry integrity metadata before execution. 4. Where practical, disable npm lifecycle scripts during installation and explicitly review any scripts required by the package: ```shell npm ci --ignore-scripts ``` 5. Pin the OpenClaw Skill to an immutable reviewed release or commit rather than resolving only by publisher and package name. 6. Run third-party clients with least privilege in an isolated environment. Expose only the API credential required for the immediate command, and do not place unrelated secrets in the same process environment. 7. Prefer direct documented HTTPS REST calls with `curl` when the CLI is unnecessary, reducing the amount of locally executed third-party code. 8. Document credential rotation procedures so users can promptly revoke the API key if package compromise is suspected.
