T08 · Insecure Dependencies
Warning
- Location
- README.md:7
- Finding
- Unpinned Third-Party Installer and Mutable Remote Source## Vulnerability Details **File Location**: `README.md`, line 7 **Vulnerability Type**: Unpinned third-party dependency and mutable installation source **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add https://github.com/skillhq/hotel-search ``` ### Technical Analysis The documented installation command invokes `npx skills` without specifying a package version or integrity digest. Consequently, the command may download and execute whichever package version the npm registry resolves at installation time. The command also installs skill content from a mutable GitHub repository reference rather than an audited commit hash or signed release. The effective installer and installed content can therefore change after this audit without any modification to the reviewed project files. This creates two supply-chain trust boundaries: 1. The npm package resolved for `skills` can change or be compromised. 2. The default branch or repository content at the GitHub URL can change or be compromised. Because `npx` executes the resolved package, compromise of the package, maintainer account, registry entry, repository, or associated credentials could turn the installation command into a local code-execution path. ### Attack Path 1. An attacker compromises the npm package resolved by `npx skills`, its publisher account, or the referenced GitHub repository. 2. The attacker publishes malicious installer logic or modifies the repository’s default branch. 3. A user follows the installation command from `README.md`. 4. `npx` downloads and executes the currently resolved package rather than a version verified during this audit. 5. The installer retrieves the mutable repository content and installs it. 6. Malicious package logic may execute during installation, or attacker-controlled skill instructions may run when the installed skill is later activated. ### Impact Assessment Successful exploitation could execute code with the privileges of the user running t ...[truncated 513 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the npm package to a reviewed version, for example by using an exact version rather than an unqualified package name. 2. Pin the GitHub source to a specific audited commit hash or immutable signed release tag. 3. Use npm lockfile and integrity metadata where installation architecture permits. 4. Publish signed releases and document how users can verify signatures or checksums before installation. 5. Avoid executing newly downloaded installer code directly where possible. Prefer a download, verification, review, and activation workflow. 6. Document the exact package version and repository commit covered by each security review. 7. Protect package and repository maintainer accounts with phishing-resistant multi-factor authentication and restricted release permissions. 8. Run installation under a non-privileged account and avoid using `sudo` or administrator privileges.
