Back to skill

Security audit

AI Trading

Security checks for vulnerabilities and agentic risk

Overview

This skill keeps trading decisions under human control, but its calculations need independent checking.

Use market-data keys only. Independently verify position sizes and liquidity figures: overnight sizing is not automatically reduced, and missing volume is treated as zero. Provider fetching also needs repair. Treat generated plans as drafts requiring manual review.

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 Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · references/data-sources.md (reported line 19)May include surrounding context.

bash
curl -H "User-Agent: your-email@example.com" \
  "https://data.sec.gov/api/xbrl/companyconcept/CIK0000320193/us-gaap/Revenues.json"
  • company_tickers.json maps a ticker to a CIK.

Missing volume data is reported as zero despite the documented guarantee to report unavailable values.

Medium
Category
Excessive Agency
Confidence
97% confidence
Finding

Empty CSV volume fields are converted to zero, making missing observations indistinguishable from genuine zero-volume trading days and biasing average-volume calculations. In a financial snapshot advertised as reporting unavailable data explicitly, this is a data-integrity weakness that could mislead downstream trading or liquidity assessments, although it does not provide code execution or data exfiltration.

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_snapshot.py (reported line 190)May include surrounding context.

python
def fetch_twelvedata(symbol: str, key: str) -> tuple:
    quote = http_json(
        f"https://api.twelvedata.com/quote?symbol=%7Burllib.parse.quote%28symbol%29%7D&apikey=%2A%2A%2A}"
    )
    series = http_json(
        f"https://api.twelvedata.com/time_series?symbol=%7Burllib.parse.quote%28symbol)}"

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_snapshot.py (reported line 193)May include surrounding context.

python
f"https://api.twelvedata.com/quote?symbol=%7Burllib.parse.quote%28symbol%29%7D&apikey=%2A%2A%2A}"
    )
    series = http_json(
        f"https://api.twelvedata.com/time_series?symbol=%7Burllib.parse.quote%28symbol)}"
        f"&interval=1day&outputsize=400&apikey={key}"
    )
    bars = []

The --overnight help claims it halves the recommended size, but the code leaves the recommended share count unchanged.

Medium
Category
Excessive Agency
Confidence
99% confidence
Finding

The --overnight option promises to halve the recommended size, but max_shares and all sizing calculations remain unchanged; it only adds a warning when risk_pct exceeds 0.5. In a financial sizing tool, users or downstream consumers relying on that promise could take twice the intended overnight exposure, although the manual-approval requirement and absence of order execution limit direct impact.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.