T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:78
- Finding
- Unpinned Remote Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 78-84 **Vulnerability Type**: Unpinned remote dependencies and mutable installation sources **Risk Level**: Medium ### Vulnerable Code ```bash # One-command installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternatively, clone and copy the skill manually git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/regex-sandbox ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation process invokes `npx skills` without specifying an exact package version. Depending on the local npm configuration and cache, `npx` may retrieve and execute the latest available release of the named CLI. The code that executes at installation time can therefore differ from the code that was reviewed. The alternative installation procedure clones the default branch of a mutable personal GitHub repository without pinning a commit hash, release tag, checksum, or cryptographic signature. It then copies repository content directly into an Agent skill directory. Consequently, future modifications or compromise of that upstream repository could cause users to install content that is materially different from the audited artifact. The `-g` option also requests global skill installation, increasing the scope over which compromised skill content may become available. This finding concerns the documented supply-chain workflow; no malicious remote retrieval was found in the local Python script itself. ### Attack Path 1. An attacker compromises the npm package used by `npx`, the associated package namespace, the GitHub account, or the upstream repository. 2. The attacker publishes a modified CLI release or adds malicious instructions or scripts to the repository's default branch. 3. A user follows the documented installation command without pinning or verifying the retrieved content. 4. `npx` executes ...[truncated 687 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the CLI to an exact reviewed version, for example by using `npx --package skills@<exact-version> skills ...`, and record the expected package integrity hash. 2. Pin the Git repository to an immutable commit hash or a cryptographically signed release rather than cloning and using the default branch directly. 3. Publish and verify SHA-256 checksums or signatures for distributed artifacts. 4. Avoid global installation by default. Prefer a project-local or otherwise isolated skill directory with least-privilege permissions. 5. Require users to inspect the downloaded manifest, instructions, and scripts before activation. 6. Use a trusted package lockfile or reproducible release archive so that installation resolves to the exact audited content. 7. Document how users can verify the package publisher, repository commit, release signature, and artifact checksum.
