T09 · Insecure Skill Coding Practices
- Location
SKILL.md:93- Finding
Financial data retrieved over unencrypted HTTP connections
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 93–94, 120–121, 169, and 174
Vulnerability Type: Plaintext transport of decision-critical financial data
Risk Level: MediumVulnerable Code
python # URL format: http://f10.eastmoney.com/cwfx.html?code=sh600519 response = await web_fetch("http://f10.eastmoney.com/cwfx.html?code=sh600519")markdown | East Money annual-report page | `http://f10.eastmoney.com/ccbgg.html?code=sh600519` | | CNINFO annual reports | `http://www.cninfo.com.cn/new/disclosure/stock?stockCode=600519` |python f10_url = f"http://f10.eastmoney.com/cwfx.html?code=sh{stock_code}" raw_page = await web_fetch(f10_url) industry_data = await web_fetch( f"http://push2.eastmoney.com/api/qt/clist/get?...industry={industry_code}" )Technical Analysis
The Skill explicitly instructs the agent to retrieve financial statements, company data, and industry comparisons through plaintext HTTP endpoints. HTTP provides neither transport encryption nor reliable server authentication and does not protect response integrity.
An attacker able to observe or modify network traffic—such as a compromised proxy, malicious access point, ISP-level intermediary, or adversary on the local network—could replace financial values or the entire response. The workflow may then treat the modified data as authoritative and use it to calculate PE, PB, ROE, margins, debt ratios, and valuation conclusions.
Network access is necessary for the declared fundamental-analysis functionality, but plaintext transport is not the minimum safe privilege or communication mechanism required. HTTPS endpoints should be used instead.
Attack Path
- A user requests fundamental analysis of an A-share company.
- The agent follows the documented workflow and requests one of the listed HTTP endpoints.
- A network-positioned attacker intercepts the unencrypted request.
- The attacke ...[truncated 1306 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace every
http://endpoint with the provider's verifiedhttps://equivalent. - Configure the retrieval mechanism to reject redirects that downgrade an HTTPS request to HTTP.
- Permit only expected HTTPS hosts, including the exact official domains required by the Skill.
- Validate response status, content type, schema, and required fields before using returned values.
- Apply sanity checks to financial values, including valid numeric ranges, reporting dates, units, and stock-code consistency.
- Cross-check decision-critical figures against a second independent source delivered over HTTPS.
- Record the source URL, retrieval date, reporting period, and any discrepancies in the generated report.
- Fail safely when secure transport or validation is unavailable rather than silently using unverified data.
- Review the currently documented providers to confirm that their HTTPS endpoints are official and supported before updating the examples.
- Replace every
