T08 · Insecure Dependencies
Error
- Location
- SKILL.md:70
- Finding
- Automatic Execution of Unpinned Third-Party Package Releases<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:70-81` **Additional Locations**: `references/env.md:52-53`; `references/rollinggo-npx.md:21-30, 52-62, 189-193`; `references/rollinggo-uv.md:19-36, 42-52, 141-146` **Vulnerability Type**: Supply-chain risk caused by mutable dependency versions and automatic upgrades **Risk Level**: High ### Vulnerable Code ```markdown ## Version Freshness (Always Latest) Default policy for this skill: use the newest release on every run. - **npm/npx:** `npx --yes --package rollinggo@latest rollinggo ...` - **uvx:** `uvx --refresh --from rollinggo rollinggo ...` If using an installed command instead of temporary execution, upgrade first: - **npm global:** `npm install -g rollinggo@latest` - **uv tool:** `uv tool upgrade rollinggo` ``` The same unsafe pattern appears in the runtime references: ```bash npx --yes --package rollinggo@latest rollinggo --help npm install -g rollinggo@latest uvx --refresh --from rollinggo rollinggo <subcommand> ... uv tool upgrade rollinggo ``` ### Technical Analysis The Skill deliberately retrieves the newest available `rollinggo` release whenever it runs or upgrades an installed copy before use. The `@latest` npm selector and the `uvx --refresh` behavior resolve to mutable external artifacts whose contents can change after this Skill has been reviewed. The project does not provide an exact reviewed version, integrity hash, lockfile, signed artifact verification procedure, or publisher identity validation. The `npx --yes` option also suppresses the normal installation confirmation. Consequently, the code eventually executed is not limited to the code represented by this audited project. Package installation and invocation can execute package CLI code and, depending on package-manager behavior, installation lifecycle code. The documented global installation path expands the affected scope by modifying the user's global tool environment. The external package implementation is ...[truncated 1824 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `rollinggo@latest` and unconstrained Python package references with an exact, reviewed version. 2. Pin and verify artifact integrity using npm lockfiles and integrity metadata or equivalent Python lockfiles and package hashes. 3. Remove the policy requiring automatic upgrades before every execution. 4. Do not use `uvx --refresh` during normal operation unless the newly resolved artifact is separately reviewed and verified. 5. Remove `--yes` from installation workflows where interactive approval is appropriate. 6. Avoid global installation. Prefer an isolated, non-privileged environment dedicated to this Skill. 7. Verify package ownership, registry source, signatures or provenance attestations, and expected package contents before approving a new version. 8. Run the CLI with a minimal environment, restricted filesystem access, no unnecessary credentials, and network access limited to required service endpoints. 9. Establish a controlled update process in which new versions are reviewed, tested, pinned, and promoted only after approval. ]]>
