T08 · Insecure Dependencies
Warning
- Location
- README.md:26
- Finding
- Unpinned Third-Party Package Execution in Installation Instructions## Vulnerability Details **File Location**: `README.md`, line 26 **Vulnerability Type**: Supply-chain risk through unpinned third-party package execution **Risk Level**: Medium **Vulnerable Code**: ```bash npx add https://github.com/wpank/ai/tree/main/skills/tools/release-skills ``` ### Technical Analysis The documented installation command uses `npx` to resolve and execute the npm package named `add`. The command does not pin that package to a reviewed version or verify its integrity. Execution therefore depends on package-registry content that can change after this project has been audited. The Skill source is also referenced through a mutable GitHub branch path. Branch content may change over time, so the installed files are not guaranteed to correspond to the audited revision. The combination of an executable, unpinned npm package and mutable remote source creates an installation-time supply-chain trust boundary that is not protected by version or integrity verification. This issue is in the installation documentation rather than the bundled Python scripts. The reviewed scripts themselves use Python's standard library and do not fetch or execute remote payloads. ### Attack Path 1. An attacker compromises the npm package resolved as `add`, one of its dependencies, or the associated publisher account. Alternatively, an attacker gains control of the mutable upstream branch or its repository. 2. The attacker publishes malicious installation logic or substitutes malicious Skill content. 3. A user follows the documented `npx add ...` command. 4. `npx` downloads and executes the currently resolved package code without validating it against an audited version or expected integrity hash. 5. The malicious package executes with the privileges of the user running the installation command and may install altered Skill files or perform unrelated system actions. ### Impact Assessment Successful exploitation permits arbitrar ...[truncated 520 chars]
- Remediation
- ## Remediation Suggestions 1. Replace the unversioned `npx add` invocation with an installer whose package name and exact version are explicitly pinned. 2. Pin the Skill source to an immutable Git commit or signed release tag instead of a mutable branch path. 3. Publish and verify cryptographic checksums or signatures for downloaded release artifacts. 4. Prefer a non-executing installation method, such as downloading a versioned archive, verifying its checksum, and copying the reviewed files into the destination. 5. If an npm-based installer remains necessary, lock all transitive dependencies, review package lifecycle scripts, and document the expected package publisher and integrity value. 6. In CI environments, run installation with minimal permissions, no unnecessary secrets, and restricted filesystem and network access.
