T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:7
- Finding
- Unpinned External npm Package Installation and Execution## Vulnerability Details **File Locations**: - `SKILL.md:7` - `SKILL.md:28` - `references/cli-reference.md:3-8` **Vulnerability Type**: Unpinned third-party dependency and remote package execution **Risk Level**: Medium ### Vulnerable Code `SKILL.md:7` ```yaml metadata: { "openclaw": { "skillKey": "inboxZeroApi", "requires": { "bins": ["inbox-zero-api"], "env": ["INBOX_ZERO_API_KEY"] }, "primaryEnv": "INBOX_ZERO_API_KEY", "install": [ { "id": "node", "kind": "node", "package": "@inbox-zero/api", "bins": ["inbox-zero-api"], "label": "Install Inbox Zero API CLI (npm)" } ] } } ``` `SKILL.md:28` ```bash If the CLI is not installed yet, install it with the OpenClaw installer or run `npm install -g @inbox-zero/api`. ``` `references/cli-reference.md:3-8` ```markdown ## Install Use one of: - `npm install -g @inbox-zero/api` - `npx @inbox-zero/api --help` ``` ### Technical Analysis The Skill installs or directly executes `@inbox-zero/api` without specifying an exact version or integrity value. Consequently, npm resolves whichever package version is current under the configured registry at execution time. The reviewed project does not include the package source, a lockfile, a checksum, or a signature that would allow the executed implementation to be verified. Both global npm installation and `npx` can execute package-controlled code, including lifecycle scripts and the CLI entry point. The package is expected to receive `INBOX_ZERO_API_KEY`, making dependency compromise particularly consequential. Although the package name is consistent with the declared Inbox Zero integration and the audit found no evidence that it is currently malicious, the instructions establish an avoidable supply-chain exposure. ### Attack Path 1. An agent follows the Skill instructions and runs `npm install -g @inbox-zero/api` or `npx @inbox-zero/api`. 2. npm resolves an unpinned release from the user's configured registry. 3. ...[truncated 1415 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `@inbox-zero/api` to a specific, reviewed version in both Skill metadata and command examples. 2. Prefer a project-local, lockfile-backed installation using `package-lock.json` rather than global installation or unpinned `npx` execution. 3. Use npm integrity metadata and verify the package provenance, publisher identity, registry origin, and release signatures before execution. 4. Configure an explicit trusted npm registry and avoid inheriting arbitrary user-controlled registry configuration in automated environments. 5. Disable package lifecycle scripts during installation where compatible, then invoke only a reviewed CLI entry point. 6. Run the CLI in a restricted environment with minimal filesystem and network access. 7. Supply a narrowly scoped and revocable API key that permits only the Inbox Zero operations required by the task. 8. Ensure custom `INBOX_ZERO_BASE_URL` values are trusted HTTPS endpoints before exposing credentials to them. 9. Document an approved package version and an update-review process so dependency upgrades do not silently change the code executed by the Skill.
