T09 · Insecure Skill Coding Practices
- Location
scripts/imagegen.py:270- Finding
Unrestricted Server-Controlled Result URL Enables Client-Side SSRF
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its image-generation purpose, but it needs Review because downloaded result URLs and filenames are not safely constrained.
Install only if you trust AI Hive and are comfortable storing an API key locally. Run it with a dedicated output directory, avoid privileged working contexts, and prefer a hardened version that validates download hosts and keeps all saved files inside the selected output folder.
scripts/imagegen.py:270Unrestricted Server-Controlled Result URL Enables Client-Side SSRF
scripts/imagegen.py:263Server-Controlled Filename Components Permit Output Path Traversal
The skill invokes shell commands, performs network requests, and writes local files, but it does not declare an explicit tool/permission scope. That creates a mismatch between advertised behavior and actual capability, increasing the risk of over-privileged execution, hidden side effects, or unsafe reuse in environments that rely on metadata for sandboxing and approval.
The description contains broad trigger phrases covering many common creative and image-generation requests, which can cause the skill to activate in situations where the user did not specifically request this tool. Over-broad auto-selection can route ordinary requests into a networked, file-writing skill unnecessarily, increasing data exposure and unintended side effects.
The skill’s natural-language description and operating instructions are written as Chinese-only usage guidance, and the workflow implicitly requires Chinese-language prompts and outputs without offering a language choice. This can violate language/locale policy when users have not opted into that locale.
This markdown file contains user-facing natural-language content exclusively in Chinese. Under the policy criteria, forcing a specific language without user opt-in can be a locale-policy issue when no alternative language option or justification is provided.
The example API key placeholder includes Chinese-only instructional text in a config value. For a general-purpose example configuration, this imposes a specific language/locale without offering a choice or documenting a region-specific reason.
No suspicious patterns detected.