Back to skill

Security audit

A Share Short Decision.Bak

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent A-share market-analysis tool that fetches market data, scores short-term signals, and stores local prediction logs, with no evidence of hidden control, exfiltration, or destructive behavior.

Install in a dedicated virtual environment, pin or review akshare and pandas versions, and remember that prediction snapshots are retained locally under data/decision_log.jsonl. Treat generated stock output as research support, not financial advice or automated trading authority.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
README.md:28
Finding

Unpinned Third-Party Dependencies Permit Supply-Chain Substitution

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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 (16)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The reported hidden behavior involving debug toggles, environment-variable resolution, and config-based feature flags is materially outside the declared trading-analysis purpose. Undisclosed debug/config behavior is risky because it can alter runtime output or expose additional internal data paths, especially when environment access is available and no tool scope is declared.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The reported hidden behavior involving debug toggles, environment-variable resolution, and config-based feature flags is materially outside the declared trading-analysis purpose. Undisclosed debug/config behavior is risky because it can alter runtime output or expose additional internal data paths, especially when environment access is available and no tool scope is declared.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The reported hidden behavior involving debug toggles, environment-variable resolution, and config-based feature flags is materially outside the declared trading-analysis purpose. Undisclosed debug/config behavior is risky because it can alter runtime output or expose additional internal data paths, especially when environment access is available and no tool scope is declared.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding

The skill declares executable workflows and references persistent storage under data/, but does not define any explicit tool scope, permissions, or allowed-tools boundaries despite detected file and environment capabilities. In an agent setting, missing scope constraints increases the chance the skill can read or write files or consume environment-derived configuration beyond what a user reasonably expects.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The configuration sets the market to "CN-A", which constrains the skill to a specific regional market/locale. Under the policy, locale restrictions should either offer user choice or be clearly documented and justified; this file provides neither.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The module docstring states this is a CLI for the "A-share short-term decision skill," which hard-codes a China-market locale focus in user-facing language. The file does not offer any language/locale choice or explain that the locale restriction is a justified region-specific compliance requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file is written entirely in Chinese and defines the agent prompt and output format only in Chinese, with no indication that users can choose another language or that the locale restriction is optional. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The function returns user-facing status messages such as '未找到该日期预测记录,请先运行 run_prediction_for_date。' and 'akshare 或 pandas 不可用,无法做真实市场对比。' entirely in Chinese. This imposes a fixed language on all users without opt-in, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The function returns several user-facing recommendation messages in Chinese string literals, but the file provides no opt-in, fallback, or documented justification for enforcing that locale. This matches the policy concern for language/locale restrictions in natural-language content within code files.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The generated report is hard-coded in Chinese, including headings, recommendations, and risk text, with no indication that the user can choose another language. This is a natural-language policy concern because it enforces a specific locale in user-facing output without opt-in or justification in the file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill explicitly documents appending decision snapshots to data/decision_log.jsonl and storing generated artifacts under data/ without warning users that persistent files will be created. Persistent storage can accumulate sensitive operational data, create privacy/retention issues, and surprise users who expect a stateless analysis skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest text explicitly identifies the skill as 'A股短线交易决策', indicating a Chinese-language/locale-specific skill name, but this file provides no indication that users can opt into that locale or that the restriction is justified as region-specific. Under the policy, forcing a specific language or locale without opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest sets timezone: Asia/Shanghai, which imposes a specific locale context on all scheduled jobs. Under the policy criteria, locale constraints should either be user-selectable or clearly documented as justified for a region-specific skill, and that justification is not present in this file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The function appends prediction data, including the full signal payload, to decision_log.jsonl via _append_jsonl. While file logging is part of the utility's purpose, there is no print, prompt, or explanatory comment/docstring near the write operation to disclose that user-invoked predictions will be persisted to disk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The call to ak.stock_zh_a_hist fetches market data from an external library-backed source, which implies network activity, but the function does not log, print, or document that external requests may be made. Users invoking this utility may not realize it contacts remote services during comparison.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.