T08 · Insecure Dependencies
- Location
README.md:97- Finding
Unpinned Third-Party CLI Execution in Installation Instructions
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 97–103
Vulnerability Type: Unpinned npm CLI and mutable repository dependency
Risk Level: MediumComplete Code Snippet:
bash npx skills add shanezzzz/decision-clarity-skillYou can also inspect the package before installing:
bash npx skills add shanezzzz/decision-clarity-skill --listTechnical Analysis
The documented installation commands invoke the
skillsnpm package throughnpxwithout specifying an exact package version or integrity value. Depending on the local npm configuration and cache state,npxcan retrieve and execute the currently resolved package version from the configured npm registry.The referenced GitHub skill,
shanezzzz/decision-clarity-skill, is also not pinned to a reviewed commit hash. Both the installer and installed content can therefore change after this project has been audited. The--listvariant reduces the intended operation but still invokes the same unpinned third-party CLI.This creates a supply-chain trust boundary in which mutable external components receive local execution capability. The repository itself contains no malicious scripts, but the documented installation process cannot guarantee that future resolved CLI or skill content will match the audited versions.
Attack Path
- An attacker compromises the npm account, registry package, publishing process, or another source used to resolve the
skillsCLI. - Alternatively, an attacker compromises or maliciously updates the referenced GitHub repository.
- A user follows either documented
npx skillscommand. npxresolves and potentially downloads the mutable third-party CLI package.- The retrieved package executes with the privileges and environment of the invoking user.
- A compromised CLI could execute arbitrary local commands, access files available to that user, read inherited environment variables, or i ...[truncated 876 chars]
- An attacker compromises the npm account, registry package, publishing process, or another source used to resolve the
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to an exact, reviewed version rather than relying on the latest registry resolution:
bash npx --yes skills@<reviewed-exact-version> add shanezzzz/decision-clarity-skill - Pin the referenced skill repository to a trusted commit hash or immutable release tag if the CLI supports immutable references.
- Publish and verify cryptographic checksums or signatures for both the installer and skill package.
- Add a lockfile or equivalent dependency manifest where supported and enforce integrity verification during installation.
- Recommend inspecting the resolved package contents without executing package lifecycle code. The current
--listcommand is not a complete security boundary because it still executes the unpinned CLI. - Run installation in a restricted environment without administrative privileges, sensitive environment variables, or access to unrelated credentials.
- Configure npm to use a trusted registry and apply provenance or signature verification where available.
- Document the exact CLI version and skill commit that were reviewed so users can reproduce the audited installation.
- Pin the CLI to an exact, reviewed version rather than relying on the latest registry resolution:
