T09 · Insecure Skill Coding Practices
- Location
lib/task-orchestrator.js:363- Finding
Rollback Order Can Preserve Partial Changes When Multiple Tasks Target the Same PSD
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a purposeful PSD-editing tool, but it needs review because it overwrites local design files and has confirmed rollback and temporary-file handling weaknesses.
Install only if you are comfortable letting it read provided screenshots, resolve PSD/PSB files through your PSD index, overwrite source design files, and create PNG/ZIP outputs. Prefer dry-run first, keep your own backups for important PSDs, avoid running it on shared machines with sensitive project names or copy, and be especially careful with batches that edit the same PSD more than once.
lib/task-orchestrator.js:363Rollback Order Can Preserve Partial Changes When Multiple Tasks Target the Same PSD
lib/task-orchestrator.js:18Task Data Is Written to Shared Temporary Storage Without Restrictive Permissions
The description states the skill orchestrates edits from a 'Chinese instruction,' which is a natural-language locale constraint. The file does not offer an alternative language option or indicate that Chinese is optional, so it appears to impose a specific language without user opt-in.
The request payload specification says text is 'Chinese requirement text,' which again imposes a specific language requirement in natural-language documentation. No user choice, fallback, or region-specific justification is provided elsewhere in the file.
The JSON contains user-facing text fields in Chinese ("主标题" and "新品上市") with no indication that language selection is configurable or chosen by the user. This can violate language/locale policy when a skill or request format implicitly forces a specific language without opt-in.
This JSON request contains user-facing natural-language instructions entirely in Chinese ("请按截图完成主图修改并导出png打包") with no indication that language selection is optional or that the skill is intentionally limited to a Chinese-language workflow. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.
The OCR path explicitly forces Tesseract to use "chi_sim+eng", and elsewhere the parser only recognizes Chinese edit phrases and returns Chinese-only error messages. There is no indication in this file that the user opted into Chinese handling or that the skill is intentionally limited to a Chinese-only context.
The Vision OCR request fixes recognition languages to "zh-Hans" and "en-US", which imposes locale behavior regardless of user preference. The file does not provide a mechanism for user selection or clearly justify the locale restriction.
The export behavior is controlled by matching only Chinese phrases such as '不导出', '仅修改', '只改文案', '不需要导图', and '桌面'. This embeds a language-specific policy into runtime behavior without any visible opt-in or alternative language support, which can exclude users operating in other languages.
The script automatically configures PNG export output and ZIP bundle creation, which are file-writing operations. While CLI flags such as --dry-run and --force exist, there is no confirmation prompt, user-facing log message, or explanatory comment/docstring in this file disclosing that running the skill will create export folders and archive files.
This manifest-like JSON includes hard-coded Chinese text values such as the layer name and replacement text, with no indication that language selection is optional or user-configurable. Under the natural-language policy rules, fixed locale-specific content can be a policy concern when it is not clearly documented as region-specific or offered as an opt-in.
The natural-language request content is entirely in Chinese and implies the skill interaction is expected in that language. For a sample request file, this creates a locale/language constraint without any indication that users may choose another language or that the skill is intentionally region-specific.
The function automatically reads a screenshot path and performs OCR extraction on the image contents, which may expose sensitive text contained in the screenshot. In this file there is no confirmation prompt, user-facing log/print, or comment/docstring warning that screenshot contents will be analyzed.
Detected: suspicious.dangerous_exec