T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Wallet-Enabled npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 4
Vulnerability Type:T08: Insecure Dependencies
Risk Level: HighComplete Code Snippet:
yaml metadata: { "openclaw": { "requires": { "bins": ["outsmart"], "env": ["PRIVATE_KEY", "MAINNET_ENDPOINT"] }, "install": [{ "id": "node", "kind": "node", "package": "outsmart", "bins": ["outsmart"], "label": "Install outsmart CLI (npm)" }] } }Technical Analysis
The skill instructs the runtime to install the npm package
outsmartwithout specifying an exact version or package integrity hash. The resulting executable is expected to operate with access to thePRIVATE_KEYenvironment variable and a Solana mainnet endpoint.Because dependency resolution is not pinned to a reviewed artifact, a compromised or unexpectedly updated package release could execute arbitrary code with the skill process's permissions. Access to the raw private key significantly increases the consequence of a supply-chain compromise: malicious dependency code could read and exfiltrate the key or use it locally to authorize unintended blockchain transactions.
The declared dependency appears consistent with the skill's stated trading function, and the reviewed file does not itself contain credential-exfiltration logic. The vulnerability is the unsafe trust boundary created by installing an unpinned third-party executable and exposing a high-value signing secret to it.
Attack Path
- An attacker compromises the
outsmartnpm package, its publisher account, or a newly resolved transitive dependency. - The skill installation resolves and installs the malicious release because no exact version or integrity constraint is declared.
- The installed CLI runs in an environment containing
PRIVATE_KEYandMAINNET_ENDPOINT. - Malicious package code reads the private key or signs unauthorized transactions.
- The attacker transfers wallet assets, authorizes unwanted trades, or ...[truncated 531 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
outsmartto a specific, reviewed version rather than resolving the latest available release. - Enforce npm lockfile and registry integrity metadata, and verify the package artifact before installation.
- Review the pinned package and its transitive dependencies; use automated dependency and provenance checks in the release pipeline.
- Prefer a trusted hardware wallet, external signer, or narrowly scoped signing service instead of exposing a raw private key through an environment variable.
- Run the CLI using a dedicated, low-balance wallet with only the funds required for the intended transaction.
- Isolate the executable in a restricted environment with minimal filesystem, network, environment-variable, and process permissions.
- Require explicit user confirmation that displays transaction destination, token, amount, fees, and slippage before signing.
- Establish a controlled upgrade process in which new dependency versions are reviewed and tested before deployment.
- Pin
