T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:82
- Finding
- Unpinned Third-Party Package Execution During Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:82` **Vulnerability Type**: Unpinned executable dependency and mutable supply-chain source **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add zhaoxinghua09-cell/agent-skills -g ``` ### Technical Analysis The documented installation command invokes the `skills` npm package through `npx` without specifying an exact package version or verifying its integrity. If the package is not already available locally, `npx` can retrieve and execute it from the configured npm registry. The command also identifies the Skill repository without pinning an immutable commit or release artifact. Consequently, the npm CLI implementation and repository content executed or installed at a later date may differ from the versions that were reviewed. This is a conditional supply-chain vulnerability: exploitation requires compromise or malicious modification of the referenced npm package, its publisher account, the package registry path, or the mutable upstream repository. ### Attack Path 1. An attacker compromises the publisher account, package distribution path, or upstream repository used by the installation process. 2. The attacker publishes a modified `skills` package version or changes the repository content referenced by the command. 3. A user follows the documented installation instructions and runs the unpinned `npx` command. 4. `npx` downloads and executes the current package implementation with the invoking user's privileges. 5. The compromised installer can modify files accessible to that user, install altered Skills globally, access user-readable data, or run additional commands. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the privileges of the user running the command. The affected scope includes files, credentials, environment variables, and development resources accessible to that account. Because the command requests global Skill installati ...[truncated 286 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the installer package to an exact audited version, rather than executing the latest available release: ```bash npx --yes skills@<audited-version> add <source> -g ``` 2. Pin the Skill source to an immutable commit hash or signed release tag. 3. Publish and verify a cryptographic checksum or signature for the downloaded release artifact. 4. Prefer local or user-scoped installation instead of global installation unless global scope is explicitly required. 5. Document that the installer executes third-party code and state the permissions and files it may access. 6. In security-sensitive environments, download and inspect the installer package before execution, then install with npm lifecycle scripts disabled where compatible. 7. Add automated dependency provenance, signature, and integrity checks to the release process. ]]>
