T09 · Insecure Skill Coding Practices
- Location
scripts/wan-image-gen.js:581- Finding
API Credential Disclosure Through an Unrestricted Endpoint Override
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent image-generation tool, but it can send the user's DashScope API key to an unrestricted configured endpoint and downloads unvalidated remote files.
Install only if you trust the skill source and will keep baseUrl pointed at the legitimate DashScope endpoint. Prefer DASHSCOPE_API_KEY from the environment instead of config.json, do not let untrusted projects set DASHSCOPE_BASE_URL or config.json, and run it in a network- and disk-limited workspace if possible.
scripts/wan-image-gen.js:581API Credential Disclosure Through an Unrestricted Endpoint Override
scripts/wan-image-gen.js:501Unvalidated Service-Provided Image URL Fetching
Referenced artifact was not completely inspected
主要脚本:`node scripts/wan-image-gen.js`
Referenced artifact was not completely inspected
主要脚本:`node scripts/wan-image-gen.js`
Referenced artifact was not completely inspected
主要脚本:`node scripts/wan-image-gen.js`
Referenced artifact was not completely inspected
主要脚本:`node scripts/wan-image-gen.js`
Referenced artifact was not completely inspected
主要脚本:`node scripts/wan-image-gen.js`
Referenced artifact was not completely inspected
主要脚本:`node scripts/wan-image-gen.js`
The skill requires environment access to read an API key and performs outbound network calls, but the manifest does not explicitly declare tool scope such as permissions or allowed-tools. This weakens least-privilege enforcement and makes it harder for a host agent or reviewer to understand and constrain what the skill is allowed to access.
The natural-language instructions and usage guidance are entirely presented in Chinese, and the skill does not indicate that language selection is optional or that the skill is intended only for a Chinese-speaking or region-specific audience. Under the stated policy, forcing a specific language without user opt-in can be a locale-policy issue.
The skill automatically downloads generated images to a local directory, but the top-level description does not clearly warn that execution writes files to disk. This can surprise users or calling agents, especially in environments where local writes are sensitive, audited, or space-limited.
L080 声称“默认档位为 final”,而前面的 config 示例在 L039 与 L053 明确给出 defaultGoal=balanced、defaultTier=standard,对应默认模型并非 final。这个问题属于文档内部对实际默认行为的主动矛盾描述,会误导调用方对脚本默认行为的理解。
SQP-3 applies to all file types and covers language or locale policy violations. The file content is entirely Chinese and does not indicate user opt-in, multilingual support, or a justified region-specific language constraint, which may conflict with organizational language-choice expectations.
This is a markdown file, so SQP-2 applies to user-affecting behaviors described in the documentation. Line L20 states that images are automatically downloaded locally, but the notes do not present this as a warning or caution even though it affects user data/storage and creates local files.
The usage examples and many user-facing messages in the script are written only in Chinese, which effectively steers use toward a specific language/locale. The file does not indicate that Chinese is optional or that users may supply prompts and interact in another language.