T08 · Insecure Dependencies
- Location
SKILL.md:83- Finding
Unsafe Global Installation of an Unpinned npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 83-85
Vulnerability Type: Supply-chain exposure through an unpinned global dependency
Risk Level: MediumVulnerable Code Snippet
markdown ### After Generation - If generation fails because the dependency is unavailable, instruct the user to install it with `npm install -g pptxgenjs`.Technical Analysis
The skill instructs the user to install
pptxgenjsglobally without specifying a reviewed version, lockfile, package integrity hash, or trusted package snapshot. Consequently, the installed code is determined by the package registry at installation time rather than by the audited skill package.The global installation scope also gives the package and its installation lifecycle scripts broader influence than a project-local dependency. If the package, one of its transitive dependencies, or the relevant registry account is compromised, arbitrary package lifecycle code could execute under the privileges of the user running npm.
The skill does not execute this command automatically; exploitation requires the user or agent environment to follow the installation instruction.
Attack Path
- PPTX generation fails because
pptxgenjsis unavailable. - The skill tells the user to run
npm install -g pptxgenjs. - npm resolves the current package and its transitive dependencies from the configured registry.
- A compromised or unexpectedly modified package is downloaded.
- Package lifecycle scripts execute with the invoking user's permissions.
- Malicious code may access data or modify resources available to that user.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user who performs the global installation. The reachable scope may include user files, environment variables, npm configuration, globally installed Node.js tools, and other resources available to that account. Admin ...[truncated 98 chars]
- PPTX generation fails because
- Remediation
View remediation
Remediation Suggestions
-
Pin
pptxgenjsto a specifically reviewed version. -
Install it within a dedicated project directory rather than globally.
-
Commit and enforce a lockfile with package integrity metadata.
-
Use a trusted registry and verify package provenance where supported.
-
Disable package lifecycle scripts during installation unless they are explicitly required and reviewed.
-
Require explicit user approval before installing any dependency.
-
Replace the instruction with a controlled setup process, such as:
bash npm install --save-exact --ignore-scripts pptxgenjs@REVIEWED_VERSION -
Review all transitive dependencies before permitting lifecycle scripts or using the package in a sensitive environment.
-
