Back to skill

Security audit

Stock Tools

Security checks for vulnerabilities and agentic risk

Overview

The skill is a small market-quote tool, but its user-facing description understates its external data sources and crypto behavior.

Install only if you are comfortable with ticker symbols being sent through a local proxy to Yahoo Finance and, for some inputs, to Binance. The publisher should document Binance crypto support and the proxy requirement or remove that path before this reads as fully scoped.

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
  • 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 (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared purpose is a Yahoo Finance-based US stock quote tool, but the code reportedly also calls Binance for cryptocurrency prices and does not faithfully match the described outputs. This kind of description-behavior mismatch is dangerous because it hides real external data flows and functionality from users and reviewers, creating an opportunity for unexpected network access, policy bypass, or trust abuse.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill advertises executable behavior that uses network access, but the manifest does not declare any explicit tool scope such as permissions or allowed-tools. This weakens reviewability and policy enforcement because consumers cannot easily verify what external capabilities the skill is expected to use, increasing the chance of undeclared outbound access being abused or overlooked.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The top-level docstring describes the module as a Yahoo Finance data retrieval tool for US market data via proxy. However, the implemented get_crypto_price function uses api.binance.com, so the documentation actively misstates the data source and supported asset class for that code path.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest limits the skill's purpose to '美股行情工具' and specifically says data is fetched through Yahoo Finance for US stock market quotes. This file implements a separate get_crypto_price path that calls Binance's API for cryptocurrency prices, which is outside the described stock-only Yahoo Finance scope.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

The script transmits user-supplied symbols to an external third-party service (Binance) through a local proxy, but the skill description and module text present the tool as a Yahoo Finance stock quote fetcher. In an agent skill context, undisclosed external network destinations are security-relevant because they can leak user interests, requests, and operational metadata to an unexpected service, especially when routed through a proxy.

Content

Scanner excerpt · scripts/yahoo_finance.py (reported line 56)May include surrounding context.

python
session.proxies = PROXY
    session.headers.update(HEADERS)

    url = f'https://api.binance.com/api/v3/ticker/price?symbol={symbol}'
    r = session.get(url, timeout=10)

    if r.status_code == 200:

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description and user-facing documentation are entirely in Chinese, which implies a fixed language/locale experience. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The request headers hard-code Accept-Language: en-US,en;q=0.9, which imposes a specific language/locale preference. Under the policy, locale constraints should be user-selectable or clearly justified; this script provides neither.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.