T09 · Insecure Skill Coding Practices
- Location
scripts/skillpay.js:7- Finding
Hard-Coded SkillPay API Credential Exposes Billing Authority
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This paid Polymarket monitoring skill mostly matches its stated purpose, but it embeds billing authority and performs automatic billing in ways users should review carefully.
Review this before installing because it is a paid skill that contacts external services and contains an embedded SkillPay API key. Use only in an environment where you trust the publisher, understand that invocations may trigger billing, and can control SKILLPAY_API_KEY, GLM5_API_KEY, and GLM5_API_URL securely.
scripts/skillpay.js:7Hard-Coded SkillPay API Credential Exposes Billing Authority
scripts/ai-analyzer.js:6Unrestricted GLM Endpoint Override Can Exfiltrate API Credentials and User Prompts
If the code performs external billing calls, generates payment/recharge links, contains hardcoded API keys, and lacks the claimed Polymarket monitoring logic, the skill is effectively deceptive and may be designed to extract money or abuse credentials under false pretenses. The combination of hidden payment behavior, embedded secrets, and absent core functionality is a strong indicator of high-risk abuse.
If the code performs external billing calls, generates payment/recharge links, contains hardcoded API keys, and lacks the claimed Polymarket monitoring logic, the skill is effectively deceptive and may be designed to extract money or abuse credentials under false pretenses. The combination of hidden payment behavior, embedded secrets, and absent core functionality is a strong indicator of high-risk abuse.
If the code performs external billing calls, generates payment/recharge links, contains hardcoded API keys, and lacks the claimed Polymarket monitoring logic, the skill is effectively deceptive and may be designed to extract money or abuse credentials under false pretenses. The combination of hidden payment behavior, embedded secrets, and absent core functionality is a strong indicator of high-risk abuse.
Referenced artifact was not completely inspected
node scripts/monitor.js hot
Referenced artifact was not completely inspected
node scripts/monitor.js hot
Referenced artifact was not completely inspected
node scripts/monitor.js hot
Referenced artifact was not completely inspected
node scripts/monitor.js hot
Referenced artifact was not completely inspected
node scripts/monitor.js hot
Referenced artifact was not completely inspected
node scripts/monitor.js hot
The code embeds a live-looking SkillPay API key as a fallback when the environment variable is missing, which creates a secret exposure risk in source control, builds, logs, and downstream copies of the skill. Anyone obtaining the code can use the credential to invoke billing APIs, potentially charging users, creating payment links, or abusing the vendor account depending on the key's privileges.
The skill declares access to environment variables and implicitly requires networked behavior, but it does not declare any tool scope or permissions boundary. This is dangerous because users and hosting platforms cannot accurately assess what capabilities the skill needs, which weakens consent, review, and least-privilege controls.
The natural-language content of the skill description and usage instructions is presented in Chinese, and the file does not indicate that language selection is optional or user-configurable. Per the policy rule, forcing a specific language without user opt-in is a language/locale policy violation unless clearly justified.
The script presents its help text, commands, examples, and status messages in Chinese, and the file header also includes Chinese labeling. There is no indication that the skill is region-specific or that users can opt into another language, which creates a language/locale policy concern.
The function posts user_id, skill_id, and amount to an external billing endpoint to deduct funds, which affects user data and account balance. Although the file comments mention per-call charging, there is no visible confirmation prompt or user-facing disclosure at the point of charge execution.
This markdown file tells users to configure SKILLPAY_API_KEY and GLM5_API_KEY, which are sensitive credentials, but it does not include any warning about keeping them secret, avoiding sharing logs, or how they will be used. Under the markdown-specific warning criterion, credential-related behavior should include some disclosure when privacy or system integrity could be affected.
The package description is written entirely in Chinese ("Polymarket预测市场监控 - 收费版") with no indication that the skill is region-specific or that users can choose their preferred language. This can violate the language/locale policy for natural-language content when no opt-in or justification is provided.
The prompt text requires the model interaction to occur in Chinese, and the rest of the file formats user-facing analysis messages in Chinese as well. This is a natural-language locale constraint with no visible opt-in or documented justification, which can violate language-choice policy.
All visible natural-language documentation in this file, including the header comment and function descriptions, is Chinese-only. Under the language/locale policy, forcing a single language without offering choice or documenting a justified locale constraint can be a policy issue.
The function sends the caller's query string to the Polymarket API via fetch, which is a network operation involving user-provided data. While the file has developer comments describing the function, it lacks any user-facing warning, logging, or confirmation that search input will be sent to a third-party service.
Comments and operational descriptions such as the billing note are written in Chinese without indicating that language choice is optional. This can violate language/locale policy if the skill is expected to be language-neutral or to offer user choice.