T08 · Insecure Dependencies
Error
- Location
- SKILL.md:82
- Finding
- Unpinned Third-Party CLI Execution in Framework Installation Guidance<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:82-100` **Vulnerability Type**: Supply-chain risk through an unpinned executable dependency **Risk Level**: High ### Vulnerable Code Snippet ```markdown ## Phase -1 — Framework Update Run this at the start of every Orchestrator session, before project preconditions. 1. Find where the skills were installed from. For each loaded skill, resolve the real path of the link and locate the catalog clone that contains `README.md` and `SKILL.md`. 2. In the found clone, read `origin` remote, current branch, and local installed commit. 3. Check the framework remote with `git fetch origin --quiet`. Never pull, merge, or reset the framework clone. 4. Compare local commit with `origin/<branch>` or the equivalent remote reference. 5. If there are new commits, report immediately: Framework update available - Framework: afonsoft/skills - Installed: <commit or date> - Available: <commit or date> - Changes: <summary of commits or files> - Action: reinstall the catalog with `npx skills add afonsoft/skills` 6. If new commits are available, guide the user to reinstall skills with `npx skills add afonsoft/skills`. ``` ### Technical Analysis The recommended `npx skills add afonsoft/skills` command invokes an executable npm package without specifying a verified package version. The effective executable and its transitive dependency graph may therefore differ from what existed when this Skill was audited. The catalog source is also referenced by a mutable repository name rather than an immutable commit or signed release. Although the Skill states that the user should run the command and that the Orchestrator must not reinstall automatically, execution by the user still grants the resolved npm package the user's local permissions. This exceeds the minimum privilege needed to report that an update exists. Update detection only requires remote metadata; it does not require execution of a mutable third-party installer. ...[truncated 1025 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the executable package to a reviewed version, for example: ```bash npx --yes skills@<reviewed-version> add afonsoft/skills@<reviewed-commit> ``` 2. Pin the catalog to an immutable commit hash or verified signed tag rather than a mutable repository head. 3. Document the expected npm publisher, package checksum, repository commit, and release signature. 4. Verify package integrity and provenance before recommending execution. 5. Prefer a locked, locally installed dependency over runtime retrieval through an unpinned `npx` command. 6. Display the exact resolved package version and catalog commit and require confirmation before installation. 7. Keep update checking read-only and separate from installation so detecting an update cannot implicitly authorize code execution. ]]>
