T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:30
- Finding
- Execution of a Mutable, Unpinned npm Dependency## Vulnerability Details **File Location**: `SKILL.md:7, 30-37, 67, 74` **Vulnerability Type**: Supply-chain risk caused by downloading and executing an unpinned dependency **Risk Level**: Medium ### Evidence ```yaml metadata: {"openclaw":{"requires":{"env":["SOCIALDATAX_API_KEY"],"bins":["node","npm"]},"primaryEnv":"SOCIALDATAX_API_KEY","install":[{"kind":"node","package":"socialdatax-skills","bins":[]}],"emoji":"📄","homepage":"https://socialdatax.com/ai?from=clawhub"}} ``` ```bash npx -y socialdatax-skills@latest douyin detail \ --aweme-id "<aweme_id>" --pretty --source-client socialdatax-skills \ --source-platform clawhub --source-skill socialdatax-douyin-detail npx -y socialdatax-skills@latest douyin detail \ --url "<douyin_content_url_or_share_text>" --pretty \ --source-client socialdatax-skills --source-platform clawhub \ --source-skill socialdatax-douyin-detail ``` ```text When the user wants to save Douyin media after detail, pass each returned `images[].url`, `images[].live_photo.play_url`, `video.play_url`, `music.play_url`, or `cover_image_url` to `npx -y socialdatax-skills@latest douyin download-media --url "<media_url>" --output-dir <directory> --pretty`; this local save command does not require `SOCIALDATAX_API_KEY`. ``` ```text If the current environment has permission, install or restore automatically. ``` ### Technical Analysis The Skill instructs the agent to use `npx -y socialdatax-skills@latest`. The `@latest` selector is mutable: it resolves to whichever package release the npm registry currently marks as latest rather than to the version reviewed during this audit. The `-y` option suppresses the normal installation confirmation. The project contains no package lockfile, integrity hash, vendored package source, or implementation of `socialdatax-skills`. Therefore, the package's lifecycle scripts, CLI behavior, network destinations, local-file access, and handling of `SOCIALDATAX_API_KEY` cannot be verified from the audit ...[truncated 1844 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `socialdatax-skills@latest` with an exact, reviewed package version, such as `socialdatax-skills@X.Y.Z`. 2. Commit a lockfile containing registry-resolved integrity hashes and enforce lockfile-based installation. 3. Verify package provenance, signatures, publisher identity, and release artifacts before approving upgrades. 4. Review the package source and lifecycle scripts for every version change. 5. Avoid automatic dependency restoration. Require explicit authorization before installing or upgrading executable dependencies. 6. Disable npm lifecycle scripts where they are unnecessary and compatible with the package. 7. Run the package in a restricted environment with: - Only the required API key exposed. - Minimal filesystem permissions. - Limited outbound network access. - No elevated operating-system privileges. 8. Prefer a vendored or internally mirrored, integrity-verified release so the executed artifact cannot change independently of the reviewed Skill. 9. Pin the version consistently in both the metadata installation declaration and every documented `npx` command.
