T08 · Insecure Dependencies
- Location
SKILL.md:151- Finding
Unpinned Global npm Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 151
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumComplete Code Snippet:
markdown - **Twitter fetch failed?** Ensure `undici` is installed: `npm install -g undici`. Configure proxy: `agent-reach configure proxy URL`.Technical Analysis
The troubleshooting instructions direct the agent to install
undiciglobally from the npm registry without specifying a reviewed version, lockfile, integrity hash, or provenance check. The version resolved by this command can therefore change after the Skill has been audited.npm installation can execute package lifecycle scripts. A compromised package release, compromised registry account, or malicious dependency introduced into the resolved dependency graph could consequently run code under the privileges of the account executing the agent. The
-goption also expands the scope of the installation by modifying the global Node.js package environment rather than an isolated project environment.This finding does not establish that
undiciitself is malicious. The vulnerability is the unsafe, mutable dependency-installation procedure.Attack Path
- A user reports that Twitter retrieval is not working.
- The agent follows the troubleshooting instruction in
SKILL.md. - The agent executes
npm install -g undici. - npm resolves the package and dependency versions available from the configured registry at execution time.
- If the selected release, dependency graph, registry, or package-maintainer account has been compromised, attacker-controlled package installation or lifecycle code executes locally.
- The malicious code operates with the permissions of the account running npm and can alter globally installed Node.js tooling accessible to that account.
Impact Assessment
Successful exploitation could allow arbitrary code execution with the p ...[truncated 512 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
undicito a specifically reviewed version instead of resolving the latest release. - Use a lockfile and verify package integrity and provenance before installation.
- Install the package within a dedicated, least-privileged project or container rather than with
-g. - Disable lifecycle scripts where they are unnecessary, for example by using an appropriate
--ignore-scriptspolicy after verifying compatibility. - Require explicit user approval before installing or modifying third-party software.
- Restrict the npm registry to a trusted source and monitor reviewed versions for supply-chain advisories.
- Pin
