T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:25
- Finding
- Unpinned Third-Party Executable Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 25–41 **Vulnerability Type**: Unpinned npm executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml "requires": { "bins": ["node"], "env": ["CUECUE_API_KEY"] }, "install": [ { "id": "npm-global", "kind": "node", "label": "Install via npm (global)", "package": "@sensedealai/cuecue", "bins": ["cue"], }, { "id": "npm-local", "kind": "node", "label": "Install via npm (local)", "package": "@sensedealai/cuecue", "bins": ["cue"], }, ], ``` ### Technical Analysis The skill installs and executes the npm package `@sensedealai/cuecue` without specifying an exact version, integrity digest, lockfile, or immutable source reference. Consequently, installation can resolve to a package version that was not reviewed as part of this audit. The global installation option increases the potential effect because npm lifecycle scripts and the installed `cue` executable run with the installing user's privileges and may be available broadly in that user's environment. This repository does not include the dependency's source code, so its installation scripts, transitive dependencies, network behavior, credential handling, and runtime behavior cannot be verified here. This is a supply-chain weakness rather than evidence that the current package is malicious. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, registry delivery path, or a transitive dependency. 2. The attacker publishes a malicious version that remains compatible with the unversioned package declaration. 3. A user or agent installs the skill dependency using either the local or global installation entry. 4. npm resolves and downloads the attacker-controlled release. 5. Malicious lifecycle code may execute during installation, or malicious behavior may run when the agent invokes `cue`. 6. The payload operates with the ...[truncated 870 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `@sensedealai/cuecue` to an exact, reviewed version rather than allowing resolution to the latest release. 2. Record and verify a cryptographic integrity digest for the approved package artifact. 3. Use a committed lockfile where the installation framework supports it, including pinned transitive dependencies. 4. Document and enforce the expected npm registry and canonical package source. 5. Prefer a local, isolated installation over a global installation to reduce command-path exposure. 6. Disable npm lifecycle scripts when they are unnecessary, or explicitly review every required lifecycle script before installation. 7. Audit the CLI source, its transitive dependencies, network destinations, and handling of `CUECUE_API_KEY` before deployment. 8. Run the CLI with least privilege in a restricted environment that exposes only required files and environment variables. 9. Add dependency monitoring and require manual security review before updating the approved package version.
