T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:7
- Finding
- Unpinned Globally Installed Third-Party CLI<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:7` **Vulnerability Type**: Unpinned third-party dependency and unsafe global installation **Risk Level**: Medium ### Vulnerable Code Snippet ```yaml compatibility: Requires nla CLI installed (npm install -g nla). Requires a funded Ethereum wallet and access to an EVM chain. ``` ### Technical Analysis The skill requires installation of the unscoped `nla` npm package without specifying an exact version, integrity hash, verified source repository, or trusted publisher. The suggested global installation also allows npm package lifecycle scripts to execute with the installing user's privileges. Because no version is pinned, the code installed during one deployment may differ from the version reviewed during the audit. A malicious publication, compromised maintainer account, dependency compromise, or package-name takeover could therefore introduce arbitrary code into the environment. The affected CLI subsequently processes wallet information and submits blockchain transactions, making supply-chain integrity particularly important. ### Attack Path 1. An attacker compromises the `nla` package, one of its transitive dependencies, or its publishing account. 2. The attacker publishes a malicious package version containing an installation lifecycle script or modified CLI implementation. 3. A user follows the skill documentation and executes `npm install -g nla`. 4. npm downloads the latest matching package and may execute attacker-controlled lifecycle scripts. 5. The malicious code executes with the user's privileges and can inspect local files, environment variables, wallet configuration, or transaction parameters. 6. Later `nla` commands may spoof transaction details, steal credentials, or redirect escrow operations. ### Impact Assessment Successful exploitation provides code execution with the privileges of the user installing or invoking the CLI. The accessible scope may include user files, environ ...[truncated 265 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin the CLI to a specific audited version rather than installing the latest release. - Record and verify package integrity hashes through a lockfile or equivalent integrity mechanism. - Document the official package registry, publisher identity, and source repository. - Prefer a project-local installation over a global installation. - Review the CLI and its transitive dependencies before use. - Disable npm lifecycle scripts where compatible, such as with `--ignore-scripts`, and separately run only explicitly audited setup operations. - Execute the CLI in a restricted environment with access only to the files and credentials required for the transaction. - Require users to verify transaction destination, token, amount, oracle, network, and calldata independently before signing. ]]>
