T08 · Insecure Dependencies
Error
- Location
- skill.md:23
- Finding
- Unpinned Third-Party Package Executes During Installation<![CDATA[ ## Vulnerability Details **File Location**: `skill.md`, lines 23–26 **Vulnerability Type**: Unpinned executable dependency and supply-chain exposure **Risk Level**: High ### Vulnerable Code ```yaml install: - kind: node package: clawxpay-js bins: [clawxpay-init] ``` The Quick Start instructions also direct users to install the package without specifying a version: ```bash npm install clawxpay-js ``` ### Technical Analysis The Skill depends on the externally maintained `clawxpay-js` npm package without pinning an exact version or integrity digest. Consequently, package resolution can select a newer release whose contents differ from those reviewed when this Skill was published. The documentation states that installing the package automatically creates a cryptocurrency wallet and writes its private key to the local filesystem. This indicates that package-controlled code performs security-sensitive initialization during or immediately after installation. The source code for that behavior is not present in the audited project, so the package's implementation, network activity, key-generation quality, and handling of existing credentials cannot be verified from this artifact. This is a supply-chain weakness rather than evidence that the current package is malicious. Exploitation would require compromise of the npm package, its publisher account, its dependency graph, or the package-resolution process. ### Attack Path 1. A user or Agent loads the Skill and follows its installation instructions. 2. `npm install clawxpay-js` resolves the currently published package version because no exact version is specified. 3. An attacker compromises the package publisher, publishes a malicious release, introduces a malicious transitive dependency, or manipulates package resolution. 4. npm installs the attacker-controlled package and may execute its installation lifecycle code with the privileges of the current user. 5. The malicious code reads accessib ...[truncated 897 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `clawxpay-js` to a reviewed exact version rather than a floating package name or semver range. 2. Commit and enforce a lockfile containing registry integrity hashes. 3. Publish or link to the complete SDK source and reproducible build instructions so wallet and payment behavior can be independently audited. 4. Verify package signatures, provenance attestations, and npm publisher identity before installation. 5. Avoid automatic security-sensitive actions in npm lifecycle scripts. Wallet initialization should be a separate, explicit command requiring informed user approval. 6. Install with lifecycle scripts disabled where feasible, review package contents, and then invoke a verified initialization command explicitly. 7. Minimize transitive dependencies and continuously scan the package and dependency graph for known vulnerabilities and ownership changes. 8. Run installation and SDK operations in a restricted environment with least-privilege filesystem and network access. ]]>
