T08 · Insecure Dependencies
Error
- Location
- SKILL.md:34
- Finding
- Unpinned Global Installation of a Security-Critical Third-Party Package## Vulnerability Details **File Location**: `SKILL.md`, lines 4 and 34–36 **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: High ### Vulnerable Code ```yaml metadata: {"openclaw":{"requires":{"bins":["agent-wallet-cli"],"env":["WALLET_PASSWORD (sensitive, optional): Wallet encryption password — passed via --password or piped via stdin. Only needed for init/import/unlock/export.","WALLET_SESSION_TOKEN (sensitive, optional): Time-limited session token (wlt_...) from unlock. Used for all operations via --token."]},"install":[{"id":"agent-wallet-cli","kind":"node","package":"agent-wallet-cli","bins":["agent-wallet-cli"],"label":"Install agent-wallet-cli (npm)"}],"source":{"repository":"https://github.com/donald-jackson/agent-wallet-cli","license":"MIT"}}} ``` ```bash npm install -g agent-wallet-cli ``` ### Technical Analysis The Skill instructs users or agents to install the latest available `agent-wallet-cli` package globally from npm. Neither the installation metadata nor the setup command pins an exact version or package integrity digest. The package is security-critical because the documented workflow gives it access to wallet passwords, recovery mnemonics, session tokens, signing operations, approvals, and cryptocurrency transfers. However, the package implementation is not included in the audited project, so this artifact cannot establish that the package downloaded at installation time matches a reviewed revision of the linked source repository. A package-owner account compromise, registry compromise, package takeover, or malicious future release could therefore substitute code after this Skill has been reviewed. Global installation also makes the resulting executable available outside a project-local dependency boundary and causes its installation lifecycle code to execute with the installing user's privileges. ### Attack Path 1. An attacker compromises the npm package, its publisher ...[truncated 1397 chars]
- Remediation
- ## Remediation Suggestions - Pin the dependency to an exact, independently audited version rather than installing the latest release. - Verify package integrity using a trusted lockfile and registry integrity digest. - Avoid global installation; use a project-local, isolated installation with minimal operating-system privileges. - Vendor the reviewed source or include it in the audited artifact so the effective implementation can be inspected. - Verify that the published npm package corresponds exactly to a signed source commit or reproducible build. - Disable npm lifecycle scripts where feasible, or inspect them before installation. - Run wallet software in an isolated environment with restricted filesystem and network access. - Establish a controlled upgrade process that requires security review before changing the pinned version.
