T09 · Insecure Skill Coding Practices
- Location
scripts/imagegen.py:231- Finding
Unvalidated Server-Controlled URLs Enable SSRF and Arbitrary Resource Retrieval
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears intended for AI image generation, but its helper script handles remote URLs and output filenames too broadly, so it should be reviewed before installation.
Install only if you are comfortable giving this skill an AI Hive API key, uploading chosen reference images to the service, and letting it write generated outputs locally. Prefer running it in a virtual environment, pin `requests`, use a dedicated low-privilege API key, and set a dedicated output directory until URL and filename validation are tightened.
scripts/imagegen.py:231Unvalidated Server-Controlled URLs Enable SSRF and Arbitrary Resource Retrieval
scripts/imagegen.py:350Unsanitized Task Metadata Allows Output-Directory Traversal and File Overwrite
SKILL.md:73Unpinned Third-Party Dependency Installation Creates Supply-Chain Risk
The skill invokes local scripts with shell, file, environment, and network capabilities but does not declare any explicit tool scope or permissions boundaries. That mismatch increases the chance an agent will grant broader access than necessary, making unintended file access, secret exposure, or outbound requests harder to govern and audit.
The description lists a wide range of common use cases such as Chinese posters, English titles, ecommerce selling-point cards, social covers, packaging concepts, and marketing assets across many platforms. For a markdown skill file, this broad phrasing lacks explicit trigger constraints or exclusion conditions, which could cause the skill to be invoked for ordinary image-design requests beyond its intended narrow purpose of exact-text image generation.
The module docstring and all user-facing CLI guidance are written entirely in Chinese, and the file includes no indication that other languages are supported or that Chinese is an intentional, documented locale constraint. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy concern.
For an image-generation skill, automatically opening a browser and appending from=cli-skill&skill=... for backend attribution is not a direct requirement of generating exact-text images. This capability introduces external tracking/attribution behavior that is unjustified by the manifest's stated purpose.
The manifest emphasizes controlled generation for accurate text placement and verification, but the code forwards unrestricted --param key=value model parameters into the API request. This creates a more open-ended image-generation surface than the description suggests, because callers can influence model behavior beyond the documented exact-text controls.
The manifest frames this skill as a Nano Banana 2 exact-text image generation/editing tool with controls for text accuracy. However, the CLI also exposes a generic task command to inspect arbitrary generation tasks and an upload command to upload reference images independently of generation, which are broader utility operations not described in the manifest.
No suspicious patterns detected.