T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:10
- Finding
- Unpinned Third-Party Dependencies May Execute Unreviewed Code<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:10`; `references/examples.md:12`; `references/examples.md:24` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:10`: ```markdown - `vhs` installed (`brew install vhs` / `go install github.com/charmbracelet/vhs@latest`) ``` `references/examples.md:12`: ```tape Type "npx create-app my-app" → Enter → Wait /Success/ → Sleep 2s ``` `references/examples.md:24`: ```tape Type "npm install" → Enter → Wait /added/ → Sleep 2s ``` ### Technical Analysis The documented installation and execution commands do not pin reviewed dependency versions. The `@latest` selector explicitly resolves to a mutable release, while `npx create-app` may download and execute a package selected from the configured npm registry. A bare `npm install` relies on the current package manifest and lockfile state, neither of which is defined or verified by this Skill. Consequently, the code executed when a user follows these instructions can differ from the code available when the Skill was audited. A compromised upstream release, package-name confusion, malicious registry configuration, or tampered dependency graph could introduce arbitrary installation or lifecycle code. ### Attack Path 1. An attacker compromises a referenced package, publishes a malicious version under the expected package name, or influences the package registry used by the victim. 2. The victim follows the Skill and invokes `go install ...@latest`, `npx create-app my-app`, or `npm install`. 3. The package manager retrieves an unreviewed or attacker-controlled version. 4. Compilation hooks, npm lifecycle scripts, or the downloaded executable run under the invoking user's account. 5. The malicious dependency can access files, environment variables, credentials, and network resources available to that account. ### Impact Assessment Successful exploitation could provide arbitrary code ex ...[truncated 395 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Replace `@latest` with an explicitly reviewed VHS version. - Document checksum or signature verification for downloaded binaries. - Pin npm package versions, for example by using an exact version rather than an unqualified package name. - Use a committed lockfile and deterministic installation commands such as `npm ci`. - Disable npm lifecycle scripts where they are unnecessary, or explicitly document why they are required. - Verify official package identities and registries before installation. - Prefer isolated, least-privileged environments such as disposable containers or virtual machines when demonstrating third-party installers. ]]>
