T09 · Insecure Skill Coding Practices
- Location
scripts/sector_rank.py:19- Finding
Financial market data retrieved over unencrypted HTTP
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This stock-data skill has no signs of system compromise, but it materially misrepresents financial data sources and can present hardcoded or advisory market output as current analysis.
Review carefully before installing. Use it only as an experimental market-data helper, not for investment decisions. Confirm any quote, ranking, or recommendation against a trusted financial source, because the package mixes providers, uses plaintext HTTP in some places, and includes static advisory content.
scripts/sector_rank.py:19Financial market data retrieved over unencrypted HTTP
sector_rank.py:12Duplicate sector-ranking implementation uses unencrypted HTTP
hot_sectors_today.py:7Hardcoded market claims and portfolio recommendations are presented as current analysis
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The declared capability promises Eastmoney-based quote fields like price change and volume, but the observed behavior reportedly uses a different source and does not implement those fields completely. This discrepancy can mislead both users and security reviewers about what data is retrieved and how trustworthy or complete the result is.
The skill advertises querying Eastmoney stock data, but this file instead prints fully hardcoded sector rankings, stock picks, prices, and even portfolio allocation advice. In a financial-analysis context, presenting fabricated or stale data as market information can mislead users into making real investment decisions based on false premises, which materially increases risk.
The skill advertises network-backed stock lookups but does not declare any explicit tool scope such as permissions or allowed-tools. In an agent environment, missing scope boundaries can let the runtime or reviewers underestimate what external access the skill may require, increasing the risk of unintended network use or privilege expansion.
Overly broad invocation examples such as ordinary stock-related conversation make trigger boundaries ambiguous, which can cause the skill to activate unexpectedly in normal chat. In a networked finance skill, accidental triggering can lead to unintended external requests, confusing responses, or hidden delegation to behavior the user did not clearly invoke.
The skill metadata claims it queries Eastmoney stock data, but the implementation actually requests data from Sina Finance. This is a supply-chain/integrity issue: users or downstream agents may rely on the declared data source for trust, licensing, formatting, or compliance reasons, yet the code silently uses a different provider. In a finance-related skill, this mismatch increases risk because analysis and decisions may be made based on unexpected or unapproved market data.
The module docstring claims to use the Sina Finance API, but no API call occurs and the output is entirely local hardcoded content. This mismatch is dangerous because it misrepresents provenance and recency of financial information, which is especially risky in a stock-related skill where users expect current data.
The file’s natural-language content, including the module description, headings, stock commentary, and risk notices, is entirely in Chinese with no indication that the user can opt into another language. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless the locale restriction is explicitly justified.
The skill advertises stock-data querying behavior but actually emits hardcoded sectors and stock picks, creating a semantic integrity issue. In a financial-analysis context, users may rely on stale or fabricated output as if it were live market data, which can mislead decisions and undermine trust in the agent.
The module docstring and function description claim to obtain current A-share hot sectors and related stocks, but the implementation does not fetch any data and instead returns static content. This mismatch is dangerous because it creates a false sense of freshness and authenticity, especially in a stock-analysis skill where users may rely on implied recency.
This Python file presents all user-facing text in Chinese, including the title, analysis, allocation guidance, and risk notices. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.
The manifest says this skill queries 东方财富 (Eastmoney) stock data, but the module docstring, function docstring, and request URL all show the implementation actually fetches data from 新浪财经 at hq.sinajs.cn. This is a semantic mismatch in data source and behavior, not just an implementation detail, because the skill is branded and described as Eastmoney-specific.
This Python file contains user-facing docstrings and printed output entirely in Chinese, including status messages, analysis text, and recommendations. Because the skill does not provide any user opt-in, language selection, or justification that it is intended only for a Chinese-language audience, it conflicts with the language/locale policy criteria.
This code exceeds the stated stock-data querying purpose by outputting prescriptive trading guidance such as recommending attention to hot sectors, selecting leading stocks, and setting stop-losses. In a financial skill, this is dangerous because users may rely on the generated recommendations as investment advice without suitability checks, disclosures, or regulatory controls, increasing risk of financial harm and compliance issues.
This file contains natural-language strings in Chinese in the module docstring, function docstring, and all user-facing print messages. The skill does not provide any user opt-in, language selection, or justification that it is intentionally limited to Chinese users or a China-specific environment, which creates a language/locale policy concern.
The manifest says this skill queries 东方财富股票数据, which implies Eastmoney as the data source. However, the implementation sends the request to hq.sinajs.cn with a finance.sina.com.cn referer, so the actual external service used is Sina rather than Eastmoney.
The package description is written only in Chinese ("东方财富股票数据查询"), which can constitute a language-policy issue if the skill is expected to be generally usable but does not offer any language choice or explain a locale restriction. There is no indication in this file that the skill is region-specific or that users opt into a Chinese-only experience.
This code file performs outbound network requests to Eastmoney endpoints using requests.get, which transmits request metadata such as headers and the user's network-originating context. While the module docstring notes that it uses the Eastmoney API, there is no explicit user-facing warning, confirmation, or runtime disclosure around the external network access.
No suspicious patterns detected.