T08 · Insecure Dependencies
Error
- Location
- SKILL.md:12
- Finding
- Unpinned npm Package Installation Permits Supply-Chain Drift## Vulnerability Details **File Location**: `SKILL.md`, lines 12-19 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: High ### Vulnerable Code ```json "install": [ { "id": "agentwallet", "kind": "node", "package": "agentwallet", "bins": ["agentwallet"], "label": "Install agentwallet (npm)" } ] ``` ### Technical Analysis The skill installs the `agentwallet` npm package without specifying an exact version or integrity hash. Consequently, the code installed at deployment time can differ from the code that was reviewed. This is especially sensitive because the package is intended to manage cryptocurrency wallets, unlock a secret vault, receive session tokens, and sign or broadcast transactions. A compromised npm release, package-maintainer account, or registry response could therefore introduce malicious behavior without requiring any modification to `SKILL.md`. The repository metadata does not bind the npm installation to a reviewed commit, release artifact, or cryptographic digest. Merely identifying a source repository is not equivalent to verifying that the installed registry artifact was built from that source. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or its release pipeline. 2. The attacker publishes a malicious version under the existing `agentwallet` package name. 3. A new environment processes the skill installation declaration and resolves the package without a version constraint. 4. npm installs the attacker-controlled release and exposes its `agentwallet` executable as a trusted local command. 5. When the agent invokes wallet operations, the malicious executable can capture passwords or session tokens, alter recipient addresses, forge displayed results, or submit unauthorized transactions. 6. Because the binary is expected to handle wallet secrets and signed transactions, its output may appear legitimate to t ...[truncated 537 chars]
- Remediation
- ## Remediation Suggestions - Pin the dependency to a specific reviewed version rather than using the floating package name. - Enforce npm lockfile integrity data or verify the downloaded artifact against an independently maintained SHA-256 digest. - Prefer installation from a signed release artifact or an immutable source commit. - Verify npm package provenance and require signed, reproducible releases in CI. - Run the wallet CLI under a dedicated, least-privileged account with restricted filesystem and network access. - Treat every version update as a security-sensitive change and repeat source and artifact review before deployment. - Confirm that the declared repository and published npm artifact correspond to one another.
