T08 · Insecure Dependencies
- Location
README.md:27- Finding
Unpinned executable npm installer dependency
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 27-36
Vulnerability Type: Unpinned executable third-party dependency
Risk Level: MediumVulnerable Code
bash npx skills add wufei-png/grilling -g -y --agent codexbash npx skills add wufei-png/grilling --skill grilling -g -y --agent codexTechnical Analysis
The documented installation commands invoke the
skillsnpm package throughnpxwithout specifying an audited package version or integrity constraint. If the package is absent locally,npxcan retrieve and execute it from the configured npm registry.Consequently, the code executed by these commands can change independently of the reviewed repository. The
-yoption suppresses interactive confirmation, while-grequests a global installation, increasing the potential effect of a compromised installer. Exploitation requires compromise or malicious control of the package, its publication credentials, the package-resolution path, or the configured registry.Attack Path
- An attacker compromises the
skillspackage, its maintainer account, or an npm registry used by the victim. - The attacker publishes or serves a malicious package version.
- A user follows the README and runs the unpinned
npx skills addcommand. npxdownloads and executes the attacker-controlled package without a version constraint.- The malicious installer runs with the invoking user's privileges and can alter files available to that user, including globally installed agent skills or configuration.
- Modified agent instructions may subsequently influence sessions that load the installed skill.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user running the command. The attacker could modify user-accessible files, agent configuration, and globally installed skill content; access data available to that account; or install additional malicious components. The comma ...[truncated 150 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin the installer to a specific, reviewed version, for example by invoking
npx skills@<audited-version>. - Lock and verify the package using npm integrity metadata or a separately published cryptographic checksum.
- Document the expected package publisher, version, and checksum so users can validate the artifact before execution.
- Avoid
-yin the default installation example so users can review package-resolution information before execution. - Avoid global installation by default. Prefer a scoped, user-controlled destination with the minimum required permissions.
- For higher-assurance installation, download the pinned package artifact, verify its digest, inspect it, and only then execute it.
- Establish a release process that updates the documented version and checksum only after security review.
- Pin the installer to a specific, reviewed version, for example by invoking
