T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:18
- Finding
- Unpinned npm Dependency Uses a Mutable Release Tag<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:18-21` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```yaml install: - kind: node package: agent-sheet@latest bins: - agent-sheet ``` ### Technical Analysis The Skill installs `agent-sheet` through the mutable npm tag `latest`. It does not specify an audited exact version, package integrity hash, lockfile, or immutable source revision. As a result, the dependency retrieved during a future installation may differ from the dependency that existed when this Skill was reviewed. The repository and documentation links do not cryptographically bind the installed npm artifact to reviewed source code. This creates a supply-chain exposure: compromise of the npm package, its publisher account, or a future unsafe release could replace the effective executable without requiring any modification to this repository. ### Attack Path 1. An attacker compromises the `agent-sheet` npm package, its publisher credentials, or its release pipeline. 2. The attacker publishes a malicious release and assigns it to the `latest` tag. 3. A user installs the Skill after that publication. 4. The installer resolves `agent-sheet@latest` to the attacker-controlled release. 5. Malicious code may execute during package installation or when the user invokes the installed `agent-sheet` binary. 6. The code runs with the permissions of the user or Agent process and can potentially access files and workbook data available to that process. ### Impact Assessment Successful exploitation could permit arbitrary code execution under the installing user's account. The accessible scope may include: - Workbooks processed by the CLI. - Files readable or writable by the user. - Environment variables inherited by installation or CLI processes. - Local `agent-sheet` workspace state. - Network resources available to the process. The dependency declaration itself does not grant ...[truncated 206 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace the mutable tag with an exact, audited version: ```yaml package: agent-sheet@X.Y.Z ``` 2. Where the Skill installation mechanism supports it, verify the npm package integrity hash. 3. Maintain a lockfile or equivalent immutable dependency manifest for reproducible installation. 4. Review the package provenance, publisher identity, and release signatures before upgrading. 5. Introduce a controlled upgrade process in which each new version is separately audited and tested before changing the pinned version. 6. Consider enforcing trusted registries and npm provenance verification in the deployment environment. ]]>
