T08 · Insecure Dependencies
Error
- Location
- README.md:26
- Finding
- Unpinned Third-Party Installer and Mutable Repository Source<![CDATA[ ## Vulnerability Details **File Location**: `README.md:26-30` **Vulnerability Type**: Supply-chain exposure through an unpinned installer and mutable source **Risk Level**: High ### Complete Code Snippet ```markdown ## Installation ```bash npx add https://github.com/wpank/ai/tree/main/skills/tools/session-handoff ``` ``` ### Technical Analysis The documented installation command invokes the `add` package through `npx` without pinning its package version. It also installs content from the mutable `main` branch of a personal GitHub repository rather than from an immutable, reviewed commit. Consequently, the code executed or installed when a user follows these instructions can differ from the code reviewed during this audit. Compromise of the npm package, npm publisher account, GitHub repository, repository owner account, or upstream branch could substitute malicious content without requiring changes to this project. The audited Python scripts themselves do not retrieve or execute remote payloads. The risk is specifically introduced by the documented installation procedure. ### Attack Path 1. An attacker compromises the npm package or publisher account associated with the unpinned `add` command, or compromises the referenced GitHub repository. 2. The attacker publishes a malicious installer version or modifies content on the mutable `main` branch. 3. A user follows the installation command from the README. 4. `npx` retrieves and runs the currently available package, which may execute with the user's operating-system privileges. 5. The installer retrieves or installs the attacker-controlled repository content. 6. Malicious installation-time code can access files and credentials available to the invoking account or install a modified skill for later execution. ### Impact Assessment Successful exploitation could result in arbitrary code execution with the privileges of the user running the installation command. The reachable scope may include the ...[truncated 325 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the npm installer to a reviewed version, rather than allowing `npx` to select the latest release. 2. Reference an immutable Git commit or signed release tag instead of the mutable `main` branch. 3. Publish and verify cryptographic checksums or signatures for distributed skill artifacts. 4. Prefer a transparent installation process that copies reviewed files without executing a transient third-party package. 5. If `npx` remains necessary, use an exact package version, review its dependency tree and lifecycle scripts, and document the expected package integrity hash. 6. Add automated monitoring for unexpected changes to installation sources and release artifacts. ]]>
