Back to skill

Security audit

23策略股票分析技能

Security checks for vulnerabilities and agentic risk

Overview

This stock-analysis skill is not overtly malicious, but it should be reviewed carefully because it gives direct trading-style guidance while overstating how complete its analysis engine is.

Install only if you want a Chinese technical-analysis helper and treat its outputs as educational signals, not financial advice. Review the incomplete placeholder implementation before relying on any buy/sell, position-size, stop-loss, or stock-screening recommendation.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

技能描述与文档多处声称具备23个技术指标、完整决策规则和交易信号生成能力,但 analyze_stock 依赖的 _calculate_indicator_signal 在实现中明确写着“返回模拟数据”,固定返回 HOLD、0分、0.5置信度。实际行为只是框架/样例级引擎,而不是宣称的完整分析技能,属于明显的描述与行为不匹配。

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill defines broad scenarios and generic search keywords such as stock analysis, buy/sell points, and market review that overlap heavily with ordinary finance queries. In an agent/router environment, this can cause the skill to activate for general conversations and steer responses into high-risk investment guidance without clear user intent or scope boundaries.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file describes an AI stock-analysis skill that generates buy/sell signals, suggested positions, stop-loss/take-profit levels, and complete trading decision flows. Under the markdown-specific SQP-2 criteria, these user-impacting behaviors should be accompanied by a clear warning about financial risk and the consequences of acting on the recommendations, but the document does not provide such a user-facing warning.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

文档在算法部分明确宣称综合评分为 Σ(指标分数 × 指标权重 × 市场环境系数 × 共振系数),但 analyze_stock 中的实际实现只是 sum(s.score for s in indicator_signals)。这会导致用户对评分机制、风险解释和输出含义产生错误预期,属于文档与代码的主动矛盾。

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

_load_indicators 的注释写明“返回23个指标的配置”,而 _get_indicator_config 又称“这里应该从指标数据库加载”,但实际 configs 仅包含 M001、M002 两项,其他指标会得到空字典。该注释/文档与真实代码行为直接矛盾,容易让调用方误以为23个指标均已可用。

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

get_indicator_database() 的 docstring 和注释都写明“返回所有23个指标的完整配置”,但返回值中的 indicators 实际只是空列表占位。这不是信息缺失,而是对返回内容的直接误导,构成文档与代码意图不一致。

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/完整技能文档.md (reported line 3734)May include surrounding context.

md
"include_indicators": True
    }
    
    response = requests.post(endpoint, json=payload)
    result = response.json()
    
    print("单股票分析结果:")

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/完整技能文档.md (reported line 3758)May include surrounding context.

md
"include_indicators": True
    }
    
    response = requests.post(endpoint, json=payload)
    result = response.json()
    
    print("单股票分析结果:")

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/完整技能文档.md (reported line 3841)May include surrounding context.

md
"include_indicators": True
    }
    
    response = requests.post(endpoint, json=payload)
    result = response.json()
    
    print("单股票分析结果:")

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The example input '分析一下比亚迪这只股票' is a natural everyday request and does not distinguish between normal discussion and intentional invocation of this specialized skill. That ambiguity increases the chance of accidental routing, making the agent provide structured trading advice when the user may only want general information.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The stock-screening example uses a broad phrase about finding stocks that meet '妖股启动点' conditions, but it does not define activation limits, eligibility checks, or safeguards around speculative screening. In this financial context, accidental or overbroad triggering is more dangerous because it can promote highly speculative recommendations at scale rather than a single-stock analysis.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The metadata sets language: chinese, which is a natural-language policy concern when a skill enforces a specific language without opt-in or an explicit region-specific justification. The surrounding documentation does not state that users may choose another language or that the Chinese-only constraint is mandatory for compliance or locale reasons.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.