Back to skill

Security audit

A-share Fund Intel

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for China A-share and fund reporting, but it ships a populated plaintext portfolio with specific holdings and amounts, which creates a real privacy concern.

Review this skill before installing or sharing it because it contains a real portfolio snapshot in plaintext. Remove or replace references/portfolio-current.md with an empty or synthetic template, and only provide holdings during a session or in storage you explicitly control. Also consider narrowing the triggers if you only want it used for China A-share and fund-monitoring requests.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/portfolio-current.md:3
Finding
Plaintext User Financial Portfolio Embedded in the Skill Package## Vulnerability Details **File Location**: `references/portfolio-current.md`, lines 3-17 **Vulnerability Type**: Plaintext sensitive financial data exposure **Risk Level**: Medium ### Evidence ```markdown 更新时间: 2026-03-06 金额单位: 按用户输入原值 ## 明细 1. 南方原油LOF-A: 113.39 2. 国投瑞银白银期货LOF-A: 157.67 3. 华夏有色金属ETF联接A: 96.38 4. 永赢高端装备智选A: 92.10 5. 嘉实上证科创板芯片ETF联接C: 93.71 ## 组合结构快照 - 总金额: 553.25 - 原油+白银+有色(商品相关): 367.44 (66.41%) - 装备+芯片(科技制造相关): 185.81 (33.59%) ``` ### Technical Analysis The distributed Skill package embeds a user-specific portfolio in a static plaintext reference file. The exposed information includes named holdings, exact amounts, total portfolio value, allocation percentages, and an update date. This data is not required to be permanently bundled with the Skill. The declared workflow in `SKILL.md` calls for confirming personalization inputs when the Skill is first used and retaining them in session memory. Shipping a populated portfolio file therefore exceeds the minimum data retention necessary for the reporting functionality. No credentials, executable payload, or automated exfiltration mechanism was identified. Exploitation requires an actor to obtain read access to the Skill package or a copy of it. ### Attack Path 1. A user installs, publishes, shares, archives, or backs up the Skill package with the populated portfolio file intact. 2. An attacker or unintended recipient obtains read access to that package through repository access, package distribution, backup exposure, or local filesystem access. 3. The actor opens `references/portfolio-current.md`. 4. The actor recovers the user's named investments, exact balances, total value, allocation concentrations, and snapshot date. 5. The information may then be used for financial profiling, targeted social engineering, or investment-themed phishing. This issue does not independently grant system privileges, code execution, account access, or access to additional files. ### Impact Assessment Th ...[truncated 378 chars]
Remediation
## Remediation Suggestions 1. Remove all populated user-specific holdings, balances, allocation percentages, totals, and dates from the distributed Skill package. 2. Replace `references/portfolio-current.md` with an empty schema or synthetic example containing no real user data. 3. Collect portfolio information only at runtime and retain it in session-scoped memory by default. 4. If cross-session persistence is required, obtain explicit user consent and store the data in access-controlled, encrypted application storage rather than a package reference file. 5. Apply data minimization by storing only fields necessary for the requested report. 6. Provide controls for users to inspect, update, and delete persisted portfolio data. 7. Add release checks or secret/sensitive-data scanning to prevent populated portfolio files from being packaged or committed. 8. Restrict filesystem permissions for any locally persisted financial data and avoid including it in logs, archives, diagnostics, or shared exports.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger phrases are broad enough to match general finance or market-monitoring requests without a clear A-share/fund scope boundary. This can cause unintended activation, leading the agent to apply specialized portfolio-adjustment logic and personalization flows in contexts the user did not explicitly request.

External Transmission

Medium
Category
Data Exfiltration
Content
- 上证指数: https://quote.eastmoney.com/zs/000001.html
- 沪深300: https://quote.eastmoney.com/zs/000300.html
- 创业板指: https://quote.eastmoney.com/zs/399006.html
- 北向资金: https://data.eastmoney.com/hsgtcg/
- 两融数据: https://data.eastmoney.com/rzrq/

## C. 基金与净值观察
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
- 上证指数: https://quote.eastmoney.com/zs/000001.html
- 沪深300: https://quote.eastmoney.com/zs/000300.html
- 创业板指: https://quote.eastmoney.com/zs/399006.html
- 北向资金: https://data.eastmoney.com/hsgtcg/
- 两融数据: https://data.eastmoney.com/rzrq/

## C. 基金与净值观察
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
The skill is designed around A-share market schedules and China-market workflows, which implies a locale-specific operating context, but the file does not explicitly present this as a user-selected or opt-in regional mode. Because locale-specific constraints should be clearly documented and justified, the absence of explicit opt-in may create a natural-language policy concern.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
This markdown template includes substantial bilingual content such as Chinese section titles alongside English labels like 'Bullish factors', 'Position suggestion', and 'Sources'. Under the language/locale policy, forcing or assuming a language format without offering user choice can be a natural-language policy concern.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
This markdown template is entirely written in Chinese and provides no indication that language selection is optional or that the template is intended only for a Chinese-speaking or region-specific audience. Under the policy, a skill artifact that implicitly enforces a single language without opt-in can be a natural-language policy violation.

Static analysis

No suspicious patterns detected.