T08 · Insecure Dependencies
- Location
SKILL.md:32- Finding
Unpinned npm Package Executes Security-Critical Wallet Operations
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 32-48; repeated throughout lines 58-284
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: HighVulnerable Code:
bash # 1. Create a wallet npx @0xsequence/builder-cli create-wallet --json # 2. Login with the private key from step 1 npx @0xsequence/builder-cli login -k <private-key> --json # 3. Create a project and get an access key npx @0xsequence/builder-cli projects create "My Project" --json # 4. Get wallet addresses (EOA + Sequence smart wallet) npx @0xsequence/builder-cli wallet-info -k <private-key> -a <access-key> --json # 5. Fund the Sequence wallet via the Trails link from step 4 # 6. Send an ERC20 transfer npx @0xsequence/builder-cli transfer \ -k <private-key> -a <access-key> \ -t <token-address> -r <recipient> \ -m <amount> -c <chain-id> --jsonTechnical Analysis
The Skill executes
@0xsequence/builder-clithroughnpxwithout specifying an exact package version. No lockfile, package integrity hash, vendored implementation, or other provenance control is present in the audited project.Consequently, the code executed during a future Skill invocation may differ from the code that existed when the Skill was reviewed. This is especially sensitive because the package receives wallet private keys and access keys and performs authentication and blockchain transactions.
The documentation does not establish that the current upstream package is malicious. The vulnerability is the absence of controls preventing a compromised, replaced, or unexpectedly changed package release from being executed automatically.
Attack Path
- An attacker compromises the package publisher, npm account, package distribution process, or a future package release.
- The attacker publishes a modified version under the same package name.
- A use ...[truncated 1012 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a reviewed, exact version rather than resolving the latest available release:
bash npx --yes @0xsequence/builder-cli@<exact-reviewed-version> create-wallet --json - Prefer installation through a committed
package.jsonand lockfile containing npm integrity metadata. - Execute the locally locked binary, such as through
npm exec --offlinewhere operationally practical. - Verify package provenance, publisher identity, release signatures, and integrity before updating.
- Review dependency changes before accepting a new package version.
- Run the CLI with least privilege and isolate it from unrelated credentials and sensitive files.
- Add explicit guidance that agents must not approve package updates automatically during security-critical wallet operations.
- Pin the CLI to a reviewed, exact version rather than resolving the latest available release:
