T08 · Insecure Dependencies
- Location
SKILL.md:26- Finding
Unpinned Third-Party Package and Remote Skill Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 26-31, 95-99, and 305-313
Vulnerability Type: Supply-chain risk caused by mutable dependencies and unverified remote skill artifacts
Risk Level: MediumVulnerable Code
SKILL.md, lines 26-31:bash npm install -g reskillIf a global installation is not available,
npx reskill@latestcan be used as a fallback. The agent should check for a global install before falling back to npx.SKILL.md, lines 95-99:bash which reskillSKILL.md, lines 305-313:bash # Install to specific agent(s) reskill install <name> -y -a <agents...> --registry https://rush.zhenguanyu.com # Install globally (user-level, available in all projects) reskill install <name> -y -g --registry https://rush.zhenguanyu.comTechnical Analysis
The Skill instructs the agent to install or execute
reskillwithout pinning it to a reviewed, immutable version. The fallback explicitly uses the mutablereskill@latesttag, whilenpm install -g reskillalso resolves the current package version at installation time. As a result, the package ultimately executed may differ from the version reviewed when this Skill was published.The Skill additionally installs remote artifacts from a community registry without requiring artifact hashes, signature verification, immutable version identifiers, or a local security review. The
-yoption suppresses the package manager's interactive confirmation, making conversational user approval the primary approval boundary.This creates a supply-chain exposure in which compromise of the npm package, its publisher account, the configured registry, a registry publisher account, or a selected skill artifact could cause attacker-controlled content to be installed. The project itself contains no embedded malicious script; the risk originates from mutable and externally controlled dependencies.
A
...[truncated 1563 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
reskillto an exact, reviewed version instead of using@latestor an unspecified version:bash npx reskill@<reviewed-version> npm install -g reskill@<reviewed-version> - Verify the npm package through an approved lockfile, package integrity digest, provenance attestation, or trusted internal package mirror.
- Require immutable skill versions and verify signed registry metadata or cryptographic artifact hashes before installation.
- Display the exact resolved package version, skill version, publisher, source registry, digest, requested installation targets, and security-review status before requesting approval.
- Bind user approval to the exact artifact and digest so the approved content cannot change between presentation and installation.
- Avoid
-yunless explicit prior approval has been obtained for the exact immutable artifact and destination. - Prefer project-local, least-privilege installation over global installation. Do not run npm, npx, or
reskillwith elevated privileges. - Consider using an allowlisted internal registry containing reviewed and mirrored skill artifacts.
- Pin
