T09 · Insecure Skill Coding Practices
- Location
scripts/fetch_stock.py:112- Finding
Unauthenticated HTTP Transport Allows Financial Market Data Manipulation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is an A-share stock assistant, but it deserves review because it can give actionable trading guidance from unauthenticated market-data requests and persist user price alerts.
Install only if you are comfortable with a skill that queries third-party Chinese financial sites, may store alert/watchlist details, and can produce concrete trading suggestions. Treat outputs as informational, verify prices through trusted sources, and do not rely on its position sizing or buy/sell guidance as personalized investment advice.
scripts/fetch_stock.py:112Unauthenticated HTTP Transport Allows Financial Market Data Manipulation
The trigger conditions are very broad, covering generic investing and trading-related queries without strong narrowing criteria or explicit user confirmation. This can cause the skill to activate in ordinary financial conversations and steer the interaction toward real-time trading advice, increasing the chance of unintended actions or inappropriate reliance on the skill.
The skill hard-locks the interaction to the mainland China A-share market and automatically ignores other markets without obtaining user consent. In practice, this can mis-handle ambiguous stock queries, omit relevant context, and provide advice on the wrong asset universe if the user did not explicitly ask for that restriction.
The document gives explicit trading actions such as buy/sell signals and follow-on guidance without any risk disclosure, suitability caveat, or statement that the material is informational only. In a skill context, users may treat this as investment advice and act on it directly, increasing the chance of financial loss or inappropriate reliance.
The file assigns concrete position-sizing ranges by market risk tier, effectively telling users how much capital to deploy. This is more dangerous than generic market commentary because exposure guidance can directly amplify losses for unsuitable users, especially without warnings about volatility, suitability, or the need for professional advice.
The title and all instructional content are written entirely in Chinese, which effectively enforces a specific language for using this reference. The policy allows locale constraints only when they are clearly documented and justified or when users are offered a language choice; neither is present here.
The Accept-Language header is fixed to "zh-CN,zh;q=0.9", which enforces a specific language/locale preference in all requests. This is a natural-language policy concern because the script does not provide an opt-in, override, or justification for forcing that locale.
Natural-language policy review applies to all file types, and this document presents all instructions and labels exclusively in Chinese. Because there is no opt-in, alternative language option, or justification that the skill is intentionally region-specific, it may violate language/locale choice expectations.
This code fetches stock data from Sina Finance and Eastmoney over the network, but the script provides no explicit user-facing notice that it contacts external third-party services. Although networking is core to the script's purpose, there is no disclosure in the CLI help or runtime output before transmitting requested stock symbols and request metadata such as headers.