T09 · Insecure Skill Coding Practices
- Location
scripts/generate_enbx.py:839- Finding
Unrestricted Local File Read and Embedding Through Picture Sources
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its courseware-generation purpose, but it can package arbitrary local files as image resources and lacks input-size limits, so it should be reviewed before installation.
Install only if you trust the users and lesson specs that will drive generation. Keep picture sources in a dedicated trusted image folder, avoid attacker-supplied JSON specs or ENBX files, choose fresh output paths, and run the scripts with normal sandbox/resource limits.
scripts/generate_enbx.py:839Unrestricted Local File Read and Embedding Through Picture Sources
scripts/generate_enbx.py:872Unbounded Dimensions and Input Sizes Can Exhaust Generator Resources
scripts/validate_enbx.py:44ENBX Validator Is Vulnerable to ZIP-Bomb Resource Exhaustion
The declared purpose centers on content generation: producing a real native Seewo .enbx lesson file from educational input. The actual code does not implement any generation pipeline, content transformation, slide creation, media packaging, or output authoring. Instead, it validates an already-existing .enbx archive by checking ZIP integrity, required filenames, XML well-formedness, slide IDs, board entries, and resource references. This is a materially different primary purpose, not merely a supporting helper, because the chunk's entire function is validation rather than creation.
Without declared permissions the skill's intent is opaque and cannot be validated.
The file's natural-language instructions are fully Chinese, beginning with the title at L001 and continuing throughout the document. Under the policy for language/locale, forcing a specific language without user opt-in or justification is a violation unless the locale constraint is explicitly documented and justified, which is not present here.
This markdown file directs the agent to write a JSON spec file at /workspace/spec.json, which is a file-creation operation affecting the user's workspace. While file generation is central to the skill, the description does not explicitly warn the user that files will be created/overwritten in the workspace or advise choosing safe output paths.
The module docstring and user-facing messages are written in Chinese, and the CLI usage/result output also mixes Chinese without any option to select another language. This creates a locale-specific behavior that is not documented as region-specific or user-configurable.
User-visible error and status strings such as file-not-found, ZIP parse failures, validation results, and resource errors are hard-coded in Chinese. For a general-purpose validation script, forcing one locale without opt-in can violate language/locale policy expectations.
No suspicious patterns detected.