Back to skill

Security audit

Crypto Market Strategist

Security checks for vulnerabilities and agentic risk

Overview

This skill uses public crypto-market data for BTC or ETH analysis and does not trade or request credentials, but it does install a Python dependency and save local research files.

Install this in a dedicated virtual environment, expect calls to public Deribit, Hyperliquid, and Polymarket APIs, and expect local research bundles/cards to be saved under the configured output directory. Do not provide exchange credentials, and treat the results as research rather than financial advice. Pinning and auditing the mcp dependency would reduce supply-chain risk.

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
requirements.txt:1
Finding

Dependency Is Not Exactly Version-Pinned or Hash-Verified

Content
View full analysis
=1.28,<2 ``` `SKILL.md:19-24`: ```markdown The skill uses public, keyless endpoints and never connects to an exchange account. Before installing the Python dependency, explain the command and ask for confirmation: ```bash python3 -m pip install -r /requirements.txt ``` ``` ### Technical Analysis The `mcp` dependency is constrained only to a broad version range. Consequently, separate installations can resolve to different package releases, including future releases that were not present during this audit. No cryptographic hashes are supplied to verify the integrity of the resolved package or its transitive dependencies. The documentation appropriately requires user confirmation before installation, and no evidence indicates that the named package is currently malicious. However, confirmation alone does not ensure artifact integrity. If a permitted future release, transitive dependency, configured package index, or downloaded artifact is compromised, pip may install and subsequently import attacker-controlled Python code. ### Attack Path 1. An attacker compromises a permitted `mcp` release, one of its transitive dependencies, or a package index trusted by the user's pip configuration. 2. The user approves the documented installation command. 3. Pip resolves a compromised package version satisfying `>=1.28,<2`. 4. Because no expected hashes are specified, pip accepts the compromised artifact. 5. Malicious code executes during package installation or when `mcp` is imported by `scripts/mcp_server.py`. 6. The code operates with the permissions of the user running pip or the Skill. ### Impact Assessment Successful exploitation could execute arbitrary P ...[truncated 962 chars]
Remediation
View remediation
``` 2. Generate a fully resolved lock file containing hashes for the direct dependency and every transitive dependency. 3. Require hash verification during installation: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 4. Install into a dedicated virtual environment or similarly isolated runtime rather than the user's global Python environment. 5. Explicitly configure a trusted package index and prevent unintended fallback to untrusted indexes. 6. Review dependency updates before changing the pinned version, including package provenance, release changes, and vulnerability advisories. 7. Preserve the existing requirement to explain the installation command and obtain user confirmation. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The skill promises funding, basis, support/resistance, regime classification, and prediction-market context, but static analysis indicates only partial implementation centered on Deribit snapshotting and option-surface work. Overstated capabilities are security-relevant here because they can induce users to over-trust outputs, approve dependency installation, and overlook the fact that the skill may not provide the independent corroboration or controls it claims.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill promises funding, basis, support/resistance, regime classification, and prediction-market context, but static analysis indicates only partial implementation centered on Deribit snapshotting and option-surface work. Overstated capabilities are security-relevant here because they can induce users to over-trust outputs, approve dependency installation, and overlook the fact that the skill may not provide the independent corroboration or controls it claims.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill promises funding, basis, support/resistance, regime classification, and prediction-market context, but static analysis indicates only partial implementation centered on Deribit snapshotting and option-surface work. Overstated capabilities are security-relevant here because they can induce users to over-trust outputs, approve dependency installation, and overlook the fact that the skill may not provide the independent corroboration or controls it claims.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill promises funding, basis, support/resistance, regime classification, and prediction-market context, but static analysis indicates only partial implementation centered on Deribit snapshotting and option-surface work. Overstated capabilities are security-relevant here because they can induce users to over-trust outputs, approve dependency installation, and overlook the fact that the skill may not provide the independent corroboration or controls it claims.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill explicitly instructs execution of a Python script and installation of dependencies, yet it does not declare any tool scope or permissions boundary despite requiring network, file read/write, and local execution capabilities. This creates an avoidable trust gap: a caller may assume a narrow read-only skill while the implementation can access broader local and network resources.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · scripts/market_context.py (reported line 16)May include surrounding context.

python
from market_analytics import price_level_dossier, realized_volatility_dossier

INFO = "https://api.hyperliquid.xyz/info"


def info(payload):

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The server persistently writes full research bundles to a user-controlled or default local directory even though the skill is described as read-only research. This creates an integrity and privacy boundary mismatch: callers may reasonably expect ephemeral analysis, but the tool leaves durable local artifacts containing market data and potentially user-supplied parameters, which can accumulate or be accessed by other local processes/users.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Research bundles are written automatically without a user-facing warning or confirmation, so the tool silently persists data to disk. Silent persistence is risky because users of a read-only analysis skill may not anticipate local writes, and the saved files could expose research history, consume storage, or violate host environment policies.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The save_strategy_card tool writes strategy-card JSON files locally and returns the saved content, extending the skill from analysis into durable artifact generation. In a supposedly read-only research skill, this can surprise users and create unintended local data persistence, especially if cards include sensitive annotations or are written into broadly accessible directories.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The strategy card save operation creates a local JSON file without prior warning or confirmation, which is a transparency and consent problem. In contexts where the agent is expected to be non-persistent or sandboxed, this can lead to unexpected data residue and broaden the skill's effective capabilities beyond analysis.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest limits the skill to analyzing one BTC or ETH derivatives setup using public Deribit, Hyperliquid, and Polymarket data for crypto strategy research. The macro_events function instead collects general macro-policy and economic-release markets such as FOMC, inflation, employment, and GDP events from Polymarket, which expands the behavior beyond a single BTC/ETH derivatives setup into standalone macro-event market collection.

Content

No source excerpt is available for this finding.

Unverifiable Dependency: mcp has 12 known advisory(ies) (CVE-2025-53366 (MCP Python SDK vulnerability in the FastMCP Server causes validation error, lead); CVE-2025-66416 (Model Context Protocol (MCP) Python SDK does not enable DNS rebinding protection); CVE-2026-52870 (MCP Python SDK: Experimental task handlers allow any client to access and cancel) +9 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The dependency specification mcp>=1.28,<2 allows installation of many different releases, including versions with known security advisories, while providing no assurance that a safe patched version will be selected. Because mcp is a network-facing SDK and some cited advisories involve server validation, DNS rebinding, and client task access control, leaving the version range broad creates a real supply-chain and deployment-time security risk.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The manifest focuses on analyzing a single BTC or ETH setup from current public data. The query_research_bundle functionality turns the skill into a local archival/query system for previously collected datasets, which is adjacent to but not clearly required by the stated purpose.

Content

No source excerpt is available for this finding.