T08 · Insecure Dependencies
- Location
SKILL.md:31- Finding
Mutable npm Package Is Installed Globally Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:31-35
Additional Locations:SKILL.md:76-81,SKILL.md:100-104,README.md:14-18
Vulnerability Type: Supply-chain compromise through a mutable dependency and global installation
Risk Level: HighVulnerable Code:
shell npm install -g @yixiaoermail/cli@latestThe upgrade and troubleshooting procedures repeat the same unpinned global installation:
shell npm install -g @yixiaoermail/cli@latest yxer --version yxer skill sync --global yxer doctorTechnical Analysis
The Skill directs the Agent to install the
@yixiaoermail/clinpm package using the mutablelatestdistribution tag. It does not pin an audited version, verify an integrity digest, validate package provenance, or otherwise ensure that the downloaded package is the version that was reviewed.An npm installation may execute package lifecycle scripts such as
preinstall,install, andpostinstall. Because the installation is global, package files and executable entry points are written outside the project directory and become available throughout the invoking user's environment. Consequently, the effective code executed during installation can change independently of this Skill after its review.No evidence in the audited files proves that the current npm package is malicious. The vulnerability is the unsafe trust and installation model.
Attack Path
- An attacker compromises the npm publisher account, package release workflow, registry resolution path, or another component of the package supply chain.
- The attacker publishes a malicious package version and assigns it to the
latesttag. - A user or Agent follows the Skill and runs:
shell npm install -g @yixiaoermail/cli@latest - npm downloads the attacker-controlled release.
- Malicious lifecycle scripts or package installation logic execute with the privileges of the u ...[truncated 675 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith an exact, reviewed package version. - Record and verify the expected package integrity digest and publisher provenance before installation.
- Prefer a project-local installation over
npm install -g, and invoke the pinned local executable. - Use a lockfile or another immutable dependency manifest where the deployment model permits it.
- Review package lifecycle scripts and consider disabling them during installation when they are not required.
- Execute installation in a sandbox or restricted account with minimal filesystem, credential, and network access.
- Require explicit user confirmation before any global installation.
- Establish a controlled upgrade process in which each new version is reviewed before changing the pinned version.
- Replace
