T08 · Insecure Dependencies
Error
- Location
- SKILL.md:32
- Finding
- Unpinned npm Package Executes Security-Critical Wallet Operations## Vulnerability Details **File Location**: `SKILL.md`, lines 32-48; repeated throughout lines 58-284 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: High **Vulnerable 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> --json ``` ### Technical Analysis The Skill executes `@0xsequence/builder-cli` through `npx` without 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 1. An attacker compromises the package publisher, npm account, package distribution process, or a future package release. 2. The attacker publishes a modified version under the same package name. 3. A use ...[truncated 1012 chars]
- Remediation
- ## Remediation Suggestions 1. 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 ``` 2. Prefer installation through a committed `package.json` and lockfile containing npm integrity metadata. 3. Execute the locally locked binary, such as through `npm exec --offline` where operationally practical. 4. Verify package provenance, publisher identity, release signatures, and integrity before updating. 5. Review dependency changes before accepting a new package version. 6. Run the CLI with least privilege and isolate it from unrelated credentials and sensitive files. 7. Add explicit guidance that agents must not approve package updates automatically during security-critical wallet operations.
