T08 · Insecure Dependencies
- Location
SKILL.md:226- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 226-229
Vulnerability Type: Supply-chain exposure through unpinned package installation
Risk Level: MediumVulnerable Code
markdown - **pptx skill** (used for final PPTX generation) — If a pptx skill exists in the environment, first read its SKILL.md to understand the PptxGenJS API; otherwise, use `npm install pptxgenjs` and then directly write a Node.js script to generate it - **Image generation tool** (DALL-E / another available image-generation MCP) — If image generation is unavailable, organize the prompts into a document for the user to generate independently - `pip install "markitdown[pptx]"` — used for content validation - `npm install pptxgenjs` — used for PPTX creationTechnical Analysis
The skill instructs the agent to install
pptxgenjsandmarkitdown[pptx]dynamically without specifying reviewed versions, lockfiles, package hashes, trusted registry configuration, or an approval boundary. Consequently, the effective dependency code may change after the skill itself has been audited.Package installation can execute dependency installation or build logic under the privileges of the process running the agent. This creates a supply-chain risk if an upstream package or transitive dependency is compromised, if registry resolution is redirected, or if a later release introduces malicious behavior.
The finding does not establish that either named package is malicious. The vulnerability is the unsafe, non-reproducible dependency acquisition process.
Attack Path
- A user invokes the skill in an environment where the required dependency is unavailable.
- The agent follows the instruction to execute
npm install pptxgenjsorpip install "markitdown[pptx]". - The package manager resolves the latest matching release and its transitive dependencies from the configured registry.
- An attacker who has compromised an upstream ...[truncated 811 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each direct dependency to a reviewed, exact version rather than resolving the latest release.
- Commit and enforce package-manager lockfiles with integrity metadata.
- For Python dependencies, use a requirements file containing hashes and install with hash verification.
- Configure package managers to use an approved registry and reject unexpected registry overrides.
- Run dependency installation and document generation in an isolated, least-privileged environment without unnecessary secrets.
- Disable npm lifecycle scripts where compatible with the reviewed dependency.
- Require explicit user approval before modifying the environment or downloading packages.
- Scan direct and transitive dependencies and periodically review pinned-version updates.
