Back to skill

Security audit

mkts Market Data

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent market-data integration that clearly discloses use of mkts.io and requires confirmation for sensitive account actions.

Install this only if you are comfortable using mkts.io as an external service for market data and, if authenticated, for storing portfolio, journal, and watchlist records. Keep MKTS_API_KEY in an environment variable, confirm every write or delete payload carefully, and avoid putting personal secrets or unnecessary private details into notes or queries.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
60% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · SKILL.md (reported line 186)May include surrounding context.

Get comprehensive company data: profile, financials, earnings, analyst consensus, ownership, insider activity, SEC filings, and ETF holdings:

bash
# Stock fundamentals
curl -s -H "X-API-Key: $MKTS_API_KEY" https://mkts.io/api/v1/asset/AAPL/details

# ETF details (includes top holdings and sector weightings)
curl -s -H "X-API-Key: $MKTS_API_KEY" https://mkts.io/api/v1/asset/SPY/details

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 · SKILL.md (reported line 31)May include surrounding context.

Registration creates a persistent credential and transmits the supplied email and agent name to mkts.io. Do not call this endpoint autonomously. Show those exact fields and obtain explicit confirmation immediately before registration. If the runtime cannot return or store the one-time key securely, have the user register manually instead; never write the key to an arbitrary file or expose it in logs.

bash
curl -s -X POST -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","name":"my-agent"}' \
  https://mkts.io/api/v1/register

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 296)May include surrounding context.

Portfolio Card Image

Generate a shareable 1200×630 PNG card showing portfolio summary:

The image contains private portfolio data. Generate it only at the user's request, confirm the destination path before writing, do not overwrite an existing file without confirmation, and never upload or share it without separate explicit consent.

bash
curl -s -H "X-API-Key: $MKTS_API_KEY" "https://mkts.io/api/v1/portfolio/card?range=YTD" -o card.png

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 · SKILL.md (reported line 308)May include surrounding context.

Portfolio (Read)

Get the authenticated user's portfolio holdings with current prices, P&L, and allocation:

bash
curl -s -H "X-API-Key: $MKTS_API_KEY" https://mkts.io/api/v1/portfolio

Returns totalValue, totalCost, totalGainLoss, totalGainLossPercent, dayChange, dayChangePercent, and a holdings array. Each holding includes symbol, name, type, quantity, avgCostBasis, currentPrice, currentValue, costBasis, gainLoss, gainLossPercent, dayChange, dayChangePercent, and allocation (percentage of portfolio). An empty portfolio returns zero totals and an empty holdings array.

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 · SKILL.md (reported line 357)May include surrounding context.

Journal text can contain sensitive personal or financial information and is transmitted to and stored by mkts.io. Before creating an entry, show the exact title, content, symbol, and tags; minimize unnecessary personal data; and obtain explicit confirmation. Before deleting, list entries, resolve and display the exact entry title and server-generated ID, warn that there is no documented undo, and confirm immediately before the request.

bash
# List all journal entries
curl -s -H "X-API-Key: $MKTS_API_KEY" https://mkts.io/api/v1/journal

# Example only — confirm this exact externally transmitted content first
curl -s -X POST -H "X-API-Key: $MKTS_API_KEY" -H "Content-Type: application/json" \

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 · SKILL.md (reported line 453)May include surrounding context.

The question is transmitted to mkts.io. Send only the market question needed for the task; exclude API keys, private portfolio or journal content, and unrelated personal data. A request to analyze private records does not authorize copying those records into this endpoint.

bash
# Screen for assets
curl -s -X POST -H "X-API-Key: $MKTS_API_KEY" -H "Content-Type: application/json" \
  -d '{"q":"tech stocks down more than 5%"}' \
  https://mkts.io/api/v1/ask

Static analysis

No suspicious patterns detected.