T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Unpinned Repository and Third-Party Dependency Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill coherently converts images into editable PowerPoint files, with disclosed local file writes and model downloads, but users should understand the dependency and model supply-chain risks.
Install only in an environment where you are comfortable with large OCR/inpainting dependencies and first-use model downloads. For more control, pin the repository and dependency versions, prefer a sandbox or virtual environment, and use --ocr-json with --skip-inpaint when you want to avoid model downloads.
SKILL.md:47Unpinned Repository and Third-Party Dependency Installation
px_image2pptx/inpaint.py:40Downloaded LAMA Model Loaded Without Project-Level Integrity Verification
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.
| Input | Impact | What to tell the user |
|-------|--------|----------------------|
| Text on solid/flat background | Best results | No caveats needed |
| Text on textured background | Good results | LAMA handles repeating textures well |
| Text overlapping photos | Inpainting artifacts likely | "Areas where text covers photos may show blurring" |
| Dense chart with many labels | Over-merged labels | "Crowded labels may be grouped incorrectly" |
The skill describes functionality that writes an output .pptx file, but it does not declare any explicit tool scope or permissions boundary. In an agent environment, missing scope declarations can allow a skill to be invoked without clear authorization constraints, increasing the risk of unintended file creation or overwriting if the platform relies on manifest-level permissions.
The trigger phrases are broad and overlap with common user intents such as 'extract text from slide as editable' or 'reconstruct slide,' which could cause the skill to activate in situations where the user did not specifically request this workflow. Over-broad activation increases the chance of unintended file processing, model downloads, or file writes, especially in multi-skill agent environments.
The manifest describes a local image-to-PowerPoint conversion pipeline, and this module's docstring presents it as an inpainting component. However, download_model(LAMA_MODEL_URL) fetches a model from a remote source at runtime, which is a distinct network capability not mentioned in the skill description or this file's documentation.
The call to download_model(LAMA_MODEL_URL) likely fetches a model over the network, but the function provides no confirmation prompt, logging, or explicit warning that network access may occur. While the module docstring explains dependency installation, it does not disclose runtime model downloading or data-transfer behavior.
The function signature sets lang: str = "ch", and the docstring reinforces Chinese as the default while requiring users to switch manually to English. This is a natural-language locale policy concern because the skill imposes a specific language setting by default rather than offering a neutral or user-selected choice.
The function writes image data to disk via cv2.imwrite(output_path, result_bgr). Although the function name and brief docstring imply saving a result, there is no explicit warning, confirmation, or user-facing log about overwriting or creating a file at the supplied path.
Detected: suspicious.dynamic_code_execution