T09 · Insecure Skill Coding Practices
- Location
scripts/generate.py:307- Finding
Unsanitized User Input Allows Terminal Output Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a local lottery-number generator that uses birthday and optional personal details, with no evidence of network access, persistence, credential use, or hidden behavior.
Before installing, understand that the skill asks for a birthdate and may use a name for deterministic lottery-number generation. Use only the minimum details needed, avoid entering someone else's personal information without consent, and treat the generated numbers as entertainment rather than financial advice.
scripts/generate.py:307Unsanitized User Input Allows Terminal Output Injection
The skill asks for birthdate and optionally name to generate personalized outputs but does not warn users that these are sensitive personal data elements or explain how they should be handled. In this context, the omission is more dangerous because the personalization feature is central to the skill, making routine collection of identifying information likely without informed consent or minimization guidance.
The trigger phrases are broad enough to activate on general requests about birthdays, luck, or metaphysics, which can cause the skill to collect or encourage disclosure of personal data in contexts where the user did not clearly ask for a lottery-number generator. In this skill’s context, that overreach increases privacy risk and misrouting risk because the skill is explicitly designed to process birthdate and optionally name, both of which are sensitive personal attributes.
This code file includes natural-language descriptions and user-facing behavior that assume Chinese-only usage, starting with the module docstring and continuing through the CLI text. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified, which is not present here.
The natural-language interface, usage guidance, and trigger phrases are all presented in Chinese, which effectively forces a single language experience. Under the policy, language constraints should either be optional for the user or explicitly justified as region- or locale-specific.