T08 · Insecure Dependencies
- Location
SKILL.md:18- Finding
Unpinned Remote Skill Installation Executes Mutable Third-Party Code
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:18-23
Additional Location:README.md:7-12
Vulnerability Type: Unpinned remote installation and supply-chain exposure
Risk Level: MediumVulnerable Code
markdown ## Vercel Skills Installation Install with the Vercel Skills CLI for this harness: ```bash npx skills add prompt-security/clawsec --skill hermes-traffic-guardian -a hermes-agent -ytext The same installation command appears in `README.md:7-12`. ### Technical Analysis The documented installation command invokes `npx skills` without pinning the CLI to a reviewed version. It also identifies the remote source as `prompt-security/clawsec` without specifying an immutable commit, release tag, or artifact digest. The `-y` flag suppresses interactive confirmation. Consequently, the code executed and installed when a user follows these instructions may differ from the audited package. The effective payload depends on mutable npm and repository state at installation time. `SKILL.md:26-103` separately documents a stronger standalone verification procedure that pins the release public-key fingerprint and verifies the signed manifest, archive hash, `SKILL.md`, and `skill.json`. However, the primary `npx` installation command does not integrate or require that verification procedure. ### Attack Path 1. An attacker compromises the npm package used by `npx`, one of its dependencies, the upstream repository, or the relevant publishing credentials. 2. The attacker publishes or exposes a malicious version under the mutable package or repository reference. 3. An operator follows the documented installation command. 4. `npx` retrieves and executes the currently resolved CLI package, and the CLI retrieves the currently resolved Skill content. 5. The `-y` option allows installation to proceed without an interactive review checkpoint. 6. Attacker-controlled code or instructions are installed or executed with the privileges of the operato ...[truncated 665 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to an explicitly reviewed version, for example by using an exact npm version rather than an unversioned
npx skillsinvocation. - Pin the Skill source to an immutable release tag or, preferably, a full commit hash.
- Require the installed archive and metadata to match the signed release manifest documented in
SKILL.md:26-103. - Make verified standalone installation the preferred path unless the CLI can enforce equivalent signature and checksum verification.
- Remove
-ywhere practical so operators retain an opportunity to inspect the resolved source, version, and requested changes. - In CI, use a lockfile or an internally mirrored, integrity-checked package and run installation with a minimally privileged account.
- Document the exact expected CLI version, repository revision, release-key fingerprint, and artifact digest for every release.
- Pin the CLI to an explicitly reviewed version, for example by using an exact npm version rather than an unversioned
