Back to skill

Security audit

杨永兴尾盘选股

Security checks for vulnerabilities and agentic risk

Overview

This stock-screening skill is coherent with its stated purpose and does not show hidden, destructive, credential-seeking, or unrelated behavior.

Before installing, be comfortable with the skill making outbound market-data requests and creating a local market_cap_cache.json file. Use a trusted Python environment, consider pinning or reviewing the pip dependencies if supply-chain controls matter, and verify the main_board_stocks.json input path/source before running.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill documents and requires capabilities for network access plus local file read/write, but it does not declare any permissions. This creates a transparency and governance problem: a user or platform may authorize the skill without understanding that it fetches remote market data and writes cache files locally, which can enable unintended data access, persistence, or outbound communication.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"author": "飞书助手",
  "license": "MIT",
  "dependencies": {
    "baostock": "^1.0",
    "pandas": "^2.0",
    "numpy": "^1.0",
    "requests": "^2.0"
Confidence
89% confidence
Finding
Using a caret range for baostock allows installation of newer compatible versions without explicit review, which can introduce supply-chain risk if an upstream release is compromised or contains breaking security changes. In a skill that fetches financial data, dependency compromise could affect integrity of analysis, exfiltrate environment data, or execute malicious code during install/runtime.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"license": "MIT",
  "dependencies": {
    "baostock": "^1.0",
    "pandas": "^2.0",
    "numpy": "^1.0",
    "requests": "^2.0"
  }
Confidence
89% confidence
Finding
Using an unpinned pandas version range permits automatic resolution to newer releases that have not been vetted for this skill. If the dependency or one of its transitive components is compromised, it can introduce supply-chain exposure affecting execution, data handling, or local environment access.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"dependencies": {
    "baostock": "^1.0",
    "pandas": "^2.0",
    "numpy": "^1.0",
    "requests": "^2.0"
  }
}
Confidence
89% confidence
Finding
The numpy dependency is specified with a floating caret range, so builds may pick up unreviewed versions over time. This weakens reproducibility and increases exposure to malicious or vulnerable upstream releases in the software supply chain.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"baostock": "^1.0",
    "pandas": "^2.0",
    "numpy": "^1.0",
    "requests": "^2.0"
  }
}
Confidence
91% confidence
Finding
Requests is a network-facing library, and leaving it unpinned increases the risk that an unexpected upstream release or compromised package version is pulled into the environment. Given this skill appears to retrieve real-time financial data, a dependency issue here could more directly affect outbound requests, response handling, or data confidentiality/integrity.

Static analysis

No suspicious patterns detected.