Back to skill

Security audit

market-sentiment-radar

Security checks for vulnerabilities and agentic risk

Overview

This skill is a read-only A-share market research helper that fetches public index data and avoids trading, credentials, persistence, or hidden actions.

Install this only if you want a Chinese-language, China A-share market research workflow and are comfortable allowing it to make public market-data network requests through AKShare. Review any dependency you install separately, and do not treat the output as trading advice or authorization for account actions.

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
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill instructs the agent to execute a local Python script via shell, but it does not declare any explicit tool scope such as allowed-tools or permissions. This creates an authority-boundary problem: a caller or platform may not have a machine-readable restriction on shell use, making unintended command execution easier if the skill is invoked in a broader context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file contains user-facing natural language instructions exclusively in Chinese, which can constitute a language/locale policy violation when no opt-in or alternative language option is provided. The content does not state that the skill is region-specific or limited to Chinese-speaking users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code presents user-facing descriptions, errors, and rendered output entirely in Chinese, and it fixes the timezone to Asia/Shanghai. The file does not offer user opt-in for language/locale selection or explain that the skill is intentionally region-specific, which fits the language/locale policy violation category.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/sentiment_analyzer.py (reported line 164)May include surrounding context.

python
if args.date:
        command += ["--date", args.date]
    try:
        child = subprocess.run(command, capture_output=True, text=True, timeout=args.timeout)
        if child.returncode:
            result = failure("采集进程失败;未生成行情结论")
        else:

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This code includes natural-language string expectations in a specific language ("新浪" and "东方财富"). Under the policy rule for language/locale constraints, hard-coding a specific language can be a violation when there is no indication of user choice or documented regional justification in the file.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
tests/test_analyzer.py:10