T08 · Insecure Dependencies
- Location
SKILL.md:177- Finding
Unpinned Global Installation and Execution of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 177
Vulnerability Type: Unpinned third-party dependency installed globally and immediately executed
Risk Level: MediumVulnerable Code
markdown - Installation: `npm install -g uipro-cli && uipro init --ai codebuddy`Technical Analysis
The Skill recommends globally installing the latest available release of the third-party
uipro-clinpm package and immediately running its command. The instruction does not pin an exact package version or require verification through a lockfile, integrity hash, digital signature, package provenance record, or source review.An npm package and its transitive dependencies may execute lifecycle scripts during installation. The subsequent
uipro initcommand also directly runs package-controlled code. Because the package version is unpinned, the effective code can change after this Skill has been reviewed. Global installation additionally places package files and executable shims in shared system or user-level npm locations.The GitHub URL elsewhere in the document is informational and does not cryptographically prove that the npm package being installed was built from the reviewed repository revision.
Attack Path
- An attacker compromises the
uipro-clipackage, its maintainer account, its publication process, or a transitive dependency. - The attacker publishes a malicious release or dependency update.
- A user follows the Skill's instruction and runs
npm install -g uipro-cli. - npm retrieves the current package release and dependencies; malicious lifecycle scripts may execute during installation with the invoking user's privileges.
- The chained
uipro init --ai codebuddycommand immediately executes additional package-controlled logic. - Malicious code can access data and modify files available to the invoking account and can alter globally installed npm tooling within that account's permission boundary.
Impact Assessm
...[truncated 716 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Remove the optional third-party installation recommendation unless it is essential to the Skill's declared FPK development function.
- If retained, pin an exact reviewed package version rather than resolving the latest release:
bash npm install --global --ignore-scripts uipro-cli@<reviewed-version> - Verify the package publisher, repository linkage, npm provenance, release signatures, and integrity metadata before recommending it.
- Review the pinned package and its full transitive dependency tree. Repeat the review before changing the pinned version.
- Prefer a project-local installation governed by a committed lockfile instead of a global installation.
- Avoid immediately chaining installation and execution. Separate these operations so users can inspect the installed package and generated command before execution.
- Disable npm lifecycle scripts where compatible. If lifecycle scripts are required, explicitly document and review them.
- Run third-party generators in an isolated, least-privilege environment without production credentials or sensitive mounted directories.
- Warn users not to invoke the installation through
sudoor another elevated shell.
