T08 · Insecure Dependencies
Warning
- Location
- README.md:18
- Finding
- Unpinned Installation Sources Permit Supply-Chain Substitution## Vulnerability Details **File Location**: `README.md`, lines 18 and 24 **Vulnerability Type**: Unpinned third-party installer and mutable repository revision **Risk Level**: Medium ### Vulnerable Code ```sh npx skills add dhzyw/long-task-runner --skill long-task-runner --agent codex ``` ```powershell git clone https://github.com/dhzyw/long-task-runner.git "$env:USERPROFILE\.agents\skills\long-task-runner" ``` ### Technical Analysis The recommended `npx` installation command does not pin the Skills CLI package to a reviewed version or verify its integrity. Consequently, the code executed by `npx` may differ from the version available during this audit. The alternative `git clone` command also retrieves the repository's current default branch rather than the source commit identified in `README.md` line 3: ```text Source commit: 3e267399cc5db606556ecbd0ec8b3746429b790b. ``` Neither installation path cryptographically binds the installed content to the audited artifact. An upstream account compromise, malicious package release, compromised transitive dependency, or unauthorized repository update could therefore substitute installer logic or Skill files after this review. ### Attack Path 1. An attacker compromises the package used by the unversioned `npx skills` command, one of its dependencies, the upstream repository, or a maintainer account. 2. The attacker publishes malicious installer code or changes the repository's default branch. 3. A user follows one of the documented installation commands. 4. The mutable package or repository content is downloaded without a version, commit, checksum, or signature verification step. 5. In the `npx` path, attacker-controlled installation code can execute immediately with the invoking user's privileges. In the clone path, malicious Skill instructions or scripts are installed into the user's Skill directory. 6. The altered Skill may subsequently execute commands or influence agent behavior under the user's account. ...[truncated 716 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the Skills CLI to a specific audited version rather than invoking an unversioned package: ```sh npx --yes skills@<AUDITED_VERSION> add dhzyw/long-task-runner --skill long-task-runner --agent codex ``` 2. Pin repository installation to the documented source commit: ```powershell git clone https://github.com/dhzyw/long-task-runner.git "$env:USERPROFILE\.agents\skills\long-task-runner" git -C "$env:USERPROFILE\.agents\skills\long-task-runner" checkout --detach 3e267399cc5db606556ecbd0ec8b3746429b790b ``` 3. Require users to verify the resulting commit: ```powershell git -C "$env:USERPROFILE\.agents\skills\long-task-runner" rev-parse HEAD ``` 4. Publish SHA-256 checksums or signed release artifacts and document a mandatory verification procedure before loading or executing the Skill. 5. Prefer immutable release archives or signed tags. Protect release publication with multi-factor authentication, branch protection, and restricted maintainer permissions. 6. Pin and audit installer dependencies through an appropriate lockfile or verified package-manager mechanism. Avoid allowing package resolution to silently select newer versions. 7. Continue advising users to inspect executable Skill content before activation, but do not rely on manual inspection as a replacement for cryptographic provenance and immutable version pinning.
