T09 · Insecure Skill Coding Practices
- Location
scripts/skillpay.js:6- Finding
Hardcoded Billing API Credential Exposed in Source Code
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This BTC prediction skill mostly does what it advertises, but its paid billing flow is under-scoped and unsafe enough that users should review it carefully before installing.
Install only if you are comfortable with a paid remote billing service being contacted on invocation. Treat the bundled SkillPay key as exposed, do not rely on the advertised win-rate or automated-trading claims, and avoid using the history or auto commands until billing is validated before charging.
scripts/skillpay.js:6Hardcoded Billing API Credential Exposed in Source Code
scripts/predict.js:80Billing Identity Is Generated from an Unauthenticated Timestamp
scripts/predict.js:62Unsupported Documented Commands Enter the Paid Prediction Workflow
The skill appears to access an external billing API and use credentials while presenting itself primarily as a BTC predictor. Undisclosed external billing integration and credential-dependent behavior increase the risk of unauthorized charging, opaque data flows, and misuse of secrets, especially in a financial context.
The skill appears to access an external billing API and use credentials while presenting itself primarily as a BTC predictor. Undisclosed external billing integration and credential-dependent behavior increase the risk of unauthorized charging, opaque data flows, and misuse of secrets, especially in a financial context.
The skill appears to access an external billing API and use credentials while presenting itself primarily as a BTC predictor. Undisclosed external billing integration and credential-dependent behavior increase the risk of unauthorized charging, opaque data flows, and misuse of secrets, especially in a financial context.
The skill declares access to an environment variable and appears to require networked behavior, but it does not declare any explicit tool scope such as permissions or allowed-tools. This creates a transparency and least-privilege problem: users and platforms cannot reliably assess what capabilities the skill may exercise, especially when it also involves billing-related behavior.
The skill promotes high-frequency, fully automated trading-style usage and advertises strong performance claims without any warning about financial loss, model error, or unattended execution risks. In a financial context, this omission can encourage unsafe reliance on speculative outputs and lead users to make repeated or automated trading decisions without understanding the downside.
This JavaScript file contains natural-language comments and output strings entirely in Chinese, including values returned in the signals objects such as '超卖 → 看涨' and '放量上涨 → 看涨'. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not present here.
The code hard-codes the zh-CN locale in time formatting, and the skill's help/output strings are entirely in Chinese. This imposes a specific language/locale on all users without any opt-in or indication that the skill is intended only for a Chinese-speaking or region-specific context.
The advertised function is directional BTC prediction, but the output goes further by providing concrete trading instructions such as BUY YES/BUY NO along with stop-loss and take-profit levels. This increases user reliance and potential harm, because the skill shifts from informational analysis into actionable financial advice without corresponding disclosure, safeguards, or suitability checks.
The skill is presented as a BTC short-term prediction tool, but it also automatically initiates billing and a recharge flow before delivering the core functionality. This creates a deceptive capability mismatch: users or calling agents may invoke what appears to be an analysis skill without realizing it performs payment operations, increasing the risk of unauthorized charges or unintended financial interaction.
This code performs a network POST to a billing endpoint containing the user's identifier, skill identifier, and charge amount, but there is no confirmation prompt, user-facing log, or explanatory comment warning that a billable remote request will be made. Because this operation affects user billing and transmits user-related data, the lack of disclosure meets the missing-warning criterion for code files.
The function sends a user's identifier and requested payment amount to a remote billing API, yet the code includes no confirmation prompt, print/log disclosure, or descriptive comment warning the user about this external transmission. Since the operation has privacy and billing implications, it should be disclosed.
The manifest description and all user-facing documentation are presented only in Chinese, with no indication that users can choose another language or locale. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless clearly justified.
The description is written only in Chinese ("BTC 15分钟短线预测 - 技术指标分析"), which can impose a language-specific experience without any indication that users may choose another language. The file does not document that this skill is region-specific or offer any opt-in for locale/language selection.
The file's natural-language comments are written entirely in Chinese, including the capability descriptions and parameter documentation. Under the stated policy, forcing a specific language without user opt-in or a documented region-specific justification is a locale/language policy issue.
Natural-language strings and comments such as '收费接口', '扣费', and '开发模式:跳过扣费' indicate a Chinese-language experience without any opt-in or explanation that the skill is intentionally locale-specific. Under the policy, forcing a specific language without user choice is a natural-language policy violation.