T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:6
- Finding
- Unpinned Global npm Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 6 and 12 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Complete Code Snippets**: ```yaml install_command: "npm i -g neonctl" ``` ```bash npm i -g neonctl ``` ### Technical Analysis The Skill instructs users to install `neonctl` globally without specifying an exact package version or integrity value. Because npm resolves the mutable latest version, the code installed in the future may differ from the version reviewed when this Skill was published. npm packages can execute lifecycle scripts during installation. If the package registry account, package release process, or an upstream dependency is compromised, malicious installation code could execute with the privileges of the user running npm. The global `-g` installation increases exposure beyond the project directory and may modify user-wide executable or package locations. The audit found no evidence that `neonctl` is currently malicious. The vulnerability is the absence of dependency pinning and integrity or provenance controls. ### Attack Path 1. An attacker compromises the `neonctl` publishing account, release pipeline, or relevant dependency chain. 2. The attacker publishes a malicious version that is selected as the latest compatible package release. 3. A user or agent follows the Skill instruction and runs `npm i -g neonctl`. 4. npm downloads the mutable package release and its dependency tree. 5. Malicious package code or lifecycle scripts execute with the invoking user's privileges. 6. The attacker may access data available to that user or alter user-wide npm executables and files permitted by the installation environment. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the user performing the installation. Potential scope includes that user's files, environment variables, credentials accessible ...[truncated 268 chars]
- Remediation
- ## Remediation Suggestions - Pin `neonctl` to a reviewed exact version, for example `npm install --global neonctl@X.Y.Z`, rather than resolving the latest release. - Verify package provenance, publisher identity, release signatures or attestations, and registry integrity metadata before installation. - Prefer a project-local, lockfile-controlled installation where practical, and invoke it through a controlled package script or `npm exec`. - Disable npm lifecycle scripts during installation when they are not required, after confirming that the package functions correctly without them. - Perform installation without elevated privileges and use a dedicated, least-privileged environment. - Establish a controlled update process in which new versions are reviewed and tested before changing the pinned version.
