T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:9
- Finding
- Unpinned Global Installation of a Third-Party Executable Package## Vulnerability Details **File Location**: `SKILL.md`, lines 9–13 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown ## Installation ```bash npm install -g @supernal/interface ``` ``` ### Technical Analysis The installation command retrieves the current registry-selected version of `@supernal/interface` without pinning an exact reviewed version or verifying its integrity or provenance. Because npm packages may execute lifecycle scripts during installation, following this instruction can execute package-controlled code with the invoking user's privileges. The global installation option (`-g`) increases exposure by placing the package's executable in a system- or user-wide command location rather than isolating it within the project. The audited project provides no lockfile, checksum, vendored source, registry restriction, or package implementation from which the installed behavior could be independently verified. This is a supply-chain weakness rather than evidence that the named package is currently malicious. ### Attack Path 1. An attacker compromises the package publisher account, package distribution channel, or a future package release. 2. The attacker publishes a malicious version containing an installation lifecycle script or altered `si` executable. 3. A user follows the documented `npm install -g @supernal/interface` instruction. 4. npm resolves the unpinned dependency to the malicious release and may execute its lifecycle scripts. 5. The malicious code runs with the user's privileges and installs or replaces the globally accessible `si` command. 6. Later `si` invocations can execute attacker-controlled behavior while appearing to perform the documented operations. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the privileges of the user running npm. The attacker could access files and cred ...[truncated 536 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to an exact version that has been reviewed, avoiding version ranges and implicit retrieval of the latest release. 2. Prefer a project-local development dependency over global installation, and commit the generated lockfile. 3. Verify package provenance, registry origin, publisher identity, signatures or attestations where available, and expected integrity hashes. 4. Audit the package contents and npm lifecycle scripts before recommending installation. 5. Use a trusted registry configuration and dependency allowlisting in CI and development environments. 6. Run initial installation and validation in an isolated, least-privileged environment. 7. Document the expected package version and integrity metadata so unexpected release changes fail closed.
