T08 · Insecure Dependencies
Warning
- Location
- README.md:56
- Finding
- Unpinned Third-Party Package Execution During Installation## Vulnerability Details **File Location**: `README.md:56-60` **Vulnerability Type**: Unpinned executable dependency and supply-chain exposure **Risk Level**: Medium ### Vulnerable Code ```markdown ## Install as a skill ```bash npx skills add AntreasAntoniou/doppel ``` ``` ### Technical Analysis The documented installation procedure invokes the `skills` npm package through `npx` without specifying a package version or integrity value. If the package is not already available locally, `npx` may retrieve executable content from the configured npm registry and run it with the invoking user's privileges. The effective installer can therefore change after this repository has been audited. The local Python implementation is dependency-free, but this installation path introduces a separate, mutable code-execution dependency whose contents and version are not controlled by the audited project. This is a supply-chain risk rather than evidence that the current package is malicious. Exploitation requires compromise, replacement, dependency confusion, or malicious publication of the package resolved as `skills`. ### Attack Path 1. An attacker compromises the npm package, maintainer account, registry resolution path, or another component responsible for resolving the unversioned `skills` command. 2. The attacker publishes a modified release containing malicious installation behavior. 3. A user follows the installation command from the README. 4. `npx` resolves and downloads the attacker-controlled package version. 5. The package executes under the user's account before the user can inspect its effective payload. ### Impact Assessment Malicious package code would ordinarily receive the same operating-system privileges as the user running `npx`. Depending on that user's permissions and environment, it could read or modify accessible files, collect credentials exposed to the process, alter project files, install additional u ...[truncated 241 chars]
- Remediation
- ## Remediation Suggestions 1. Prefer the documented `git clone` or reviewed copy/symlink installation procedure, which does not execute an unrelated installer package. 2. If `npx` remains supported, pin an audited exact version, for example by using an explicit `package@version` reference. 3. Document the expected registry and package publisher so users can detect namespace or registry substitution. 4. Publish and verify package integrity or provenance information, such as registry integrity metadata, signed releases, or attestations. 5. Recommend reviewing the resolved package and running installation in a least-privileged, isolated environment. 6. Add automated checks that reject unpinned executable dependency commands in installation documentation.
