T08 · Insecure Dependencies
- Location
SKILL.md:38- Finding
Execution of an Unpinned Mutable npm Package with Wallet Access
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:38-43
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: HighVulnerable Code
bash Prefer `npx` with `@latest` — it always runs the latest version with no global install to manage: npx @solana-compass/cli@latest config set rpc.url https://your-rpc-endpoint.com npx @solana-compass/cli@latest wallet create --name my-walletTechnical Analysis
The Skill explicitly recommends running
@solana-compass/cli@latestthroughnpx. This downloads and executes whichever package version the npm registry currently designates as the latest release. The effective executable can therefore change after the Skill has been reviewed, without any corresponding change to this project.No exact package version, integrity hash, lockfile, or provenance verification is supplied. This is particularly sensitive because the downloaded CLI creates and accesses wallet key files, signs blockchain transactions, and can transfer, trade, stake, lend, or otherwise control cryptocurrency.
The repository does not contain the npm package implementation, so this audit cannot establish that the current package is malicious. The vulnerability is the unsafe supply-chain trust model created by executing a mutable release with access to high-value wallet material.
Attack Path
- An attacker compromises the npm publisher account, package build pipeline, or another mechanism controlling the
latestrelease. - The attacker publishes a modified version and marks it as the latest release.
- A user or Agent follows the documented setup command.
npxdownloads and executes the compromised package locally.- The package runs with the operating-system privileges of the invoking user.
- It can attempt to read wallet files under
~/.sol/wallets/, alter transaction recipients, sign unauthorized transactions, or access other files available to that user.
...[truncated 654 chars]
- An attacker compromises the npm publisher account, package build pipeline, or another mechanism controlling the
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith an exact, reviewed package version, for example@solana-compass/cli@0.3.4. - Distribute and verify package integrity hashes or signed provenance before execution.
- Use a lockfile or other immutable dependency-resolution mechanism where possible.
- Review each new package release before updating the pinned version.
- Run the CLI with a dedicated operating-system account or sandbox that cannot read unrelated credentials and files.
- Use dedicated low-balance wallets for Agent-controlled activity.
- Document the expected package publisher, registry, checksum, and update process so users can detect dependency substitution.
- Replace
