T09 · Insecure Skill Coding Practices
- Location
skill.js:22- Finding
Unrestricted API endpoint receives user content and bearer credentials
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill performs its core novel-analysis task, but it sends full user text and an API key to a configurable external endpoint and falsely reports every compliance check as safe.
Review this skill carefully before installing. Only use it with non-sensitive novel text or with a trusted HTTPS API endpoint that you control, and do not rely on its compliance_check result because the inspected code always marks content as safe.
skill.js:22Unrestricted API endpoint receives user content and bearer credentials
skill.js:37Compliance check always reports submitted content as safe
The entire skill description is written only in Chinese and presents the skill as Chinese-language specific without any opt-in, alternative locale, or statement that users may choose another language. Per the policy, forcing a specific language or locale without user choice is a natural-language policy violation.
The manifest description is entirely in Chinese and describes the skill's behavior only in that language, which indicates a language-specific constraint without offering the user a language choice or documenting that the skill is intentionally region-specific. Under the policy, language or locale restrictions should be opt-in or clearly justified.
The embedded prompt is entirely in Chinese and instructs the model using Chinese-only output labels, effectively imposing a specific language/locale behavior. There is no opt-in, fallback, or documented justification that this skill is intentionally limited to Chinese-language operation.
The skill transmits the full novel_text and title to an external chat completion API, which can expose proprietary, copyrighted, personal, or otherwise sensitive user content to a third party. In this skill, the transmission is functionally necessary for the feature, but there is no minimization, consent flow, or disclosure, so the data exposure risk is real rather than theoretical.
The code sends full novel content to an external service without any user-facing warning, disclosure, or indication in the return value that third-party transmission occurred. This creates a transparency and privacy problem because users may reasonably assume their text is processed locally or within a trusted boundary when it is actually exported off-platform.