T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:22
- Finding
- Unpinned Executable npm Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:22` and `SKILL.md:51-53` **Vulnerability Type**: Supply-chain risk caused by a mutable dependency version **Risk Level**: Medium ### Vulnerable Code ```yaml install: node: '@kashdao/cli@latest' ``` ```sh npm install -g @kashdao/cli@latest ``` ### Technical Analysis The skill instructs users to install the executable `@kashdao/cli` package using the mutable `latest` npm tag. It does not specify an audited version, integrity hash, signature, lockfile, or other mechanism that would ensure users consistently install the same reviewed artifact. The project contains only `SKILL.md`; it does not include the CLI implementation. Consequently, the package's effective behavior—including how it handles API credentials, signer references, and financial transactions—cannot be verified from the audited project. Global installation also increases exposure because npm lifecycle scripts and the installed executable run with the installing user's privileges. This finding does not establish that the current npm package is malicious. The vulnerability is the unsafe dependency-resolution mechanism, which allows future package releases or a compromised package publication process to change the executable installed by the skill without requiring a corresponding change to the reviewed project. ### Attack Path 1. An attacker compromises the npm publisher account, package release pipeline, or another component of the package's supply chain. 2. The attacker publishes a malicious version of `@kashdao/cli` and assigns it the `latest` tag. 3. A user or agent follows the skill's installation instruction. 4. npm resolves `@latest` to the attacker-controlled release and installs it globally. 5. Malicious installation scripts or CLI code execute with the user's local privileges. 6. When the CLI is used, the compromised package may access `KASH_API_KEY`, configuration data, signer references, transaction parameters, and o ...[truncated 775 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `@kashdao/cli@latest` with an exact, reviewed version, such as `@kashdao/cli@X.Y.Z`. 2. Publish and verify package integrity metadata or cryptographic signatures before installation. 3. Supply a lockfile or equivalent reproducible dependency manifest where the deployment mechanism supports it. 4. Avoid global installation where possible; install into an isolated, least-privileged environment. 5. Disable npm lifecycle scripts during installation when they are not required, or explicitly audit every required lifecycle script. 6. Establish a controlled update process in which each new dependency version is reviewed before the pinned version is changed. 7. Make auditable CLI source available alongside the skill or reference a verifiable source commit corresponding exactly to the distributed npm artifact. ]]>
