T08 · Insecure Dependencies
Warning
- Location
- README.md:10
- Finding
- Unpinned npx Package Creates a Mutable Installation Execution Chain<![CDATA[ ## Vulnerability Details **File Location**: `README.md:10` and `README.zh.md:10` **Vulnerability Type**: Unpinned executable third-party dependency **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add alondotsh/alon-skills --skill alon-github-security-audit ``` ### Technical Analysis The documented installation command invokes the third-party `skills` package through `npx` without specifying an exact package version or integrity value. If the package is not already available locally, `npx` can retrieve it from the configured npm registry and execute it with the invoking user's privileges. The effective installer code can therefore change after this Skill has been reviewed. The repository does not provide a lockfile, checksum, package version, or other integrity mechanism for this installation path. This is an insecure supply-chain practice, although there is no evidence in the audited files that the current package is malicious. This finding is distinct from the `curl | sh` strings detected in `SKILL.md`. Those strings are explanatory audit indicators and are not executed by this project. ### Attack Path 1. A user follows the Quick Install instructions. 2. `npx` resolves the unversioned `skills` package using the user's configured npm registry. 3. The registry returns the package version selected at installation time. 4. `npx` executes that package locally. 5. If the package, its account, a dependency, or the selected registry has been compromised, attacker-controlled code executes before or during Skill installation. The attack depends on an external supply-chain compromise or registry redirection; no such compromise was confirmed during this offline static audit. ### Impact Assessment A compromised package would execute with the privileges of the user running `npx`. It could potentially: - read or modify files accessible to that user; - access environment variables and locally available credentials; - make network requests; - ...[truncated 285 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the installer package to a reviewed exact version, for example: ```bash npx --yes skills@X.Y.Z add alondotsh/alon-skills --skill alon-github-security-audit ``` 2. Document the expected npm registry, package publisher, and verified package identity. 3. Provide package integrity information or a lockfile-backed installation workflow where supported. 4. Avoid mutable tags such as `latest` and broad semantic-version ranges for executable installer tooling. 5. Recommend reviewing the resolved package version before allowing `npx` to download and execute it. 6. Consider offering a non-executing manual installation procedure from a pinned Git commit or signed release. 7. Apply the same corrected command to both `README.md` and `README.zh.md`. ]]>
