T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:31
- Finding
- Unpinned Global Installation of FetchProxy CLI<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 31 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ```sh npm install -g @fetchproxy/cli # provides `fpx` ``` ### Technical Analysis The setup instructions install `@fetchproxy/cli` globally without specifying a reviewed version or package integrity constraint. Consequently, the command resolves to whichever release and dependency graph the npm registry serves at installation time. An npm installation can execute package lifecycle scripts and installs executable entry points. If the package, one of its transitive dependencies, its maintainer account, or the relevant registry distribution channel is compromised, following this instruction could execute attacker-controlled code. The global installation also places executable files in a shared npm prefix rather than isolating them to this Skill. This finding does not establish that the current `@fetchproxy/cli` package is malicious. The risk arises because the effective code is mutable after the Skill has been reviewed and the documentation does not pin or verify it. ### Attack Path 1. An attacker compromises the npm package, a maintainer account, or a transitive dependency, or publishes a malicious future release through the legitimate package name. 2. A user follows the Skill's one-time setup instructions after that release becomes the registry's default version. 3. npm downloads the mutable release and its dependency graph. 4. Malicious lifecycle code may execute during installation, or malicious behavior may run when the user later invokes `fpx`. 5. The payload operates with the permissions of the account running npm and can access resources available to that account. The path requires compromise of the package supply chain or publication of an unsafe release. The audited files contain no evidence that such a compromise has already occurred. ### Impact Assessment Successful exploitation could ...[truncated 416 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `@fetchproxy/cli` to a specifically reviewed version instead of resolving the latest release: ```sh npm install -g @fetchproxy/cli@<reviewed-version> ``` 2. Document the expected package digest, provenance, and reviewed release date so users can verify the artifact. 3. Prefer a project-local installation with a committed lockfile over a global installation, then invoke the pinned binary through a controlled script. 4. Use npm provenance/signature verification where supported and install only from the expected registry. 5. Consider `--ignore-scripts` if the reviewed package does not require lifecycle scripts. 6. Document that users should not run the installation with `sudo` or another privileged account. 7. Periodically review and deliberately update the pinned version rather than accepting changes automatically. ]]>
