T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:24- Finding
Unnecessary Use of Sensitive Investment Holdings for Summary Personalization
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a disclosed WeChat article summarizer, but it asks to use and persist investment holdings and has unsafe network-fetching code.
Review this before installing if your agent can access Trade Arena or other financial data. Do not grant portfolio access or enable scheduled runs unless you explicitly want that behavior, and prefer fixing the fetch helpers to require HTTPS, allowlist WeChat/Sogou hosts, and limit redirects before use.
SKILL.md:24Unnecessary Use of Sensitive Investment Holdings for Summary Personalization
fetch_article.js:27HTTPS Destinations Are Accessed Through the Plaintext HTTP Client in fetch_article.js
fetch_v2.js:16HTTPS Destinations Are Accessed Through the Plaintext HTTP Client in fetch_v2.js
fetch_article.js:47Unrestricted Redirect Following Permits SSRF and Transport Downgrade in fetch_article.js
fetch_v2.js:32Unrestricted Redirect Following Permits SSRF and Transport Downgrade in fetch_v2.js
The trigger conditions are broad and ambiguous, using generic phrases like '刘润', '公众号摘要', and '每日商业新闻' without clear user-intent confirmation. This can cause unintended activation, leading the agent to browse external sites and fetch content when the user did not explicitly request this behavior.
The skill writes both raw article content and generated summaries to local files without stating that behavior to the user at runtime or obtaining consent. This creates a data governance and privacy risk, especially because the summary may incorporate user-specific context such as holdings, causing unexpected persistence of sensitive or copyrighted material.
The entire skill artifact is written as a Chinese-only summary template and provides no indication that users may choose another language or locale. Under the policy rule, forcing a specific language without opt-in is a natural-language policy violation unless the locale limitation is explicitly documented and justified.
The entire skill file is written as a Chinese-only article summary and does not indicate that other languages are supported or that Chinese is an explicit user-selected option. Under the policy rule, forcing a specific language without opt-in can be a natural-language policy violation unless the locale restriction is clearly documented and justified.
The HTTP request headers hard-code Accept-Language: zh-CN,zh;q=0.9,en;q=0.8, which imposes a specific language preference for all requests. This is a natural-language policy concern because the skill does not offer the user any choice or document why Chinese locale enforcement is required.
This markdown file presents all user-facing content exclusively in Chinese, and there is no indication that the user can choose another language or has opted into this locale. Under the policy check for language or locale constraints, forcing a specific language without user choice can be a natural-language policy violation.
This markdown file contains user-facing natural language exclusively in Chinese, including the title, headings, and summary content. Under the language/locale policy rule, forcing a specific language without user opt-in can be a policy violation when no choice or justification is provided.
This markdown file presents the entire skill output in Chinese and does not indicate that language is selectable or user-driven. Under the policy, forcing a specific language or locale without opt-in is a natural-language policy violation unless clearly justified.
This markdown file is entirely in Chinese and presents its content as the default output format, with no indication that users can opt into another language. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.
This markdown file contains user-facing natural language exclusively in Chinese, including the title, headings, and content, with no indication that the skill is region-specific or that users may opt into another language. Under the language/locale policy check, forcing a specific language without user opt-in can be a policy violation.
The entire document is presented only in Chinese, including headings, warnings, and content, with no indication that language selection is optional. Under the stated policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale constraint is explicitly documented and justified.
This markdown file presents all user-facing content in a single forced language. Under the stated policy, language or locale constraints should either offer user opt-in/choice or be clearly documented as region-specific and justified.
The entire skill file is presented only in Chinese, including the title, summary, and metadata, with no indication that users may choose another language or that the content is intentionally limited to a Chinese-speaking audience. Under the stated policy, forcing a specific language without opt-in can constitute a natural-language policy violation.
The code formats execution time using toLocaleString('zh-CN'), which hard-codes a specific locale for user-facing output. The file does not provide any user opt-in or configurability for locale selection.
The HTTP request hard-codes the Accept-Language header to 'zh-CN,zh;q=0.9', which imposes a specific locale preference. Under the policy, language or locale constraints should not be forced unless the user is given a choice or the regional limitation is clearly justified.
No suspicious patterns detected.