T09 · Insecure Skill Coding Practices
- Location
scripts/imagegen.py:231- Finding
Server-Controlled Upload Destination Is Not Validated
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for AI image editing, but its bundled script lets remote task data control upload/download destinations and output filenames too broadly.
Review this skill before installing if you will use private images or run it in a sensitive environment. Prefer an isolated Python environment, use a minimally scoped AI Hive key, choose a non-sensitive output directory, and be aware that result downloads and storage upload URLs are controlled by the remote service response without local validation.
scripts/imagegen.py:231Server-Controlled Upload Destination Is Not Validated
scripts/imagegen.py:350Untrusted Task Metadata Can Control Download Destinations and Resource Consumption
SKILL.md:70Dependency Installation Instructions Use an Unpinned Package
The skill invokes local Python scripts, reads image files from user-supplied paths, writes local configuration and outputs, uses environment-held API keys, and performs network requests, yet it declares no explicit tool scope or permission boundary in metadata. This increases the risk of over-broad agent execution and makes it harder for a host system to enforce least privilege or present clear consent around shell, file, env, and network access.
The manifest description says to use this skill for broad phrases like '照片风格化', '人物换场景', and '室内改造' without defining clear boundaries or exclusions. These are common user intents that could match many unrelated image-editing tasks, increasing the risk of unintended invocation.
The skill content and usage guidance are written entirely in Chinese while the description mixes Chinese and English and does not state that language is optional or user-selectable. This can constitute a locale/language policy issue if the skill implicitly expects or constrains interaction to one language without opt-in.
The module docstring and all user-facing CLI messages are written exclusively in Chinese, and the skill provides no option for users to select another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.
The changelog content is entirely written in Chinese, which constitutes a language-specific user-facing natural-language constraint. There is no indication that the skill is region-specific or that users can choose another language, so this appears to violate the language/locale policy requirement.
The placeholder value contains a Chinese-only instruction ('请替换为你的APIKey'), which imposes a specific language in user-facing natural language. The file does not provide an alternative language option or indicate that the locale restriction is intentional or region-specific.
No suspicious patterns detected.