T09 · Insecure Skill Coding Practices
- Location
scripts/main.py:8- Finding
Hard-Coded Proxy Authentication Token
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This coupon-search skill matches its stated purpose, but it needs review because it ships a reusable proxy token and trusts remote coupon content in rendered links and images.
Review this before installing. It sends coupon search terms to a remote Tencent Cloud Function and returns remote images and purchase links. The publisher should rotate/remove the exposed proxy token, document the network behavior, narrow routing to explicit coupon searches, and validate or escape remote coupon fields before rendering them.
scripts/main.py:8Hard-Coded Proxy Authentication Token
scripts/main.py:249Untrusted Remote Content Rendered as Unsanitized Markdown
The skill invokes a local Python entrypoint and the analyzer detected network capability, but the manifest does not declare any explicit tool scope or permission boundary. This creates an authorization and transparency gap: reviewers and the host may not be able to constrain or clearly understand what external access the skill may perform when processing user-supplied search terms.
The activation text is broad enough to trigger on many generic requests about discounts, coupons, food, or services, which can cause the skill to be invoked outside narrow user intent. Over-broad routing is dangerous because it can unnecessarily expose user queries to this skill and any backing network/tooling, increasing data-sharing and mis-execution risk even if the skill itself is not overtly malicious.
The file-level description is written entirely in Chinese and the skill's user-facing outputs throughout the code are hard-coded in Chinese, indicating the skill is designed to operate only in that language. There is no natural-language notice, opt-in, or fallback giving users a language/locale choice, which matches the language-policy violation criteria.
The skill embeds a live proxy authentication token directly in source code and then sends it as an HTTP header on every request. Anyone with access to the code can reuse the token to call the proxy service, potentially abusing the backend, consuming quota, or accessing data/functions intended only for this skill.