Back to skill

Security audit

eToro Trading API

Security checks for vulnerabilities and agentic risk

Overview

This skill is a real eToro trading integration, but it defaults authenticated trades to real-money mode without requiring explicit confirmation.

Review before installing. Use this only with an account and agent workflow where live trading is intentionally enabled. Prefer changing the skill or your operating rules so trading defaults to demo mode and every live open, close, cancel, or limit order requires an explicit transaction-specific confirmation. Treat logs carefully because the skill says full request details are logged before execution.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:75
Finding
Real-Money Trading Is the Unsafe Default## Vulnerability Details **File Location**: `SKILL.md`, lines 75-79 **Vulnerability Type**: Unsafe default for consequential financial operations **Risk Level**: High **Vulnerable Code Snippet**: ```markdown ## Key Notes - Instrument IDs are numeric (not tickers). Resolve via `/market-data/search?internalSymbolFull=AAPL` - Trading tools default to `mode=real`. Only use demo if explicitly requested. - All trading execution is logged with full request details before sending. - Rate limit: 100 req/min ``` ### Technical Analysis The Skill explicitly instructs the Agent to default trading operations to real mode and to use demo mode only when the user requests it. This is an unsafe default because the documented trading endpoints can open and close positions or cancel orders using an authenticated eToro account. The instructions do not require an explicit opt-in to real trading, a transaction preview, a second confirmation, exposure limits, or validation that the user knowingly selected a live account. Consequently, an ambiguous request, misunderstood intent, or incorrect parameter could cause the Agent to send a consequential request to a real trading endpoint. This is classified as `T09: Insecure Skill Coding Practices` because the Skill configuration establishes an unsafe operational default for irreversible or financially significant actions. ### Attack Path 1. The Skill is loaded with credentials authorized to execute trades on an eToro account. 2. A user asks the Agent to open or close a position without explicitly specifying real or demo mode. 3. The Agent follows the instruction in `SKILL.md` and selects `mode=real`. 4. No mandatory live-trading confirmation or transaction preview is required by the Skill. 5. The Agent submits the authenticated request to a real trading execution endpoint. 6. The account incurs a real position, order modification, cancellation, financial exposure, fees, or loss. An attacke ...[truncated 881 chars]
Remediation
## Remediation Suggestions 1. Change the default account mode to `demo`; reject trading requests whose mode is unspecified rather than silently selecting a live account. 2. Require an explicit, transaction-specific opt-in such as `mode=real` before constructing any live trading request. 3. Present a confirmation summary before every real transaction, including: - Account mode and account identifier - Instrument and resolved numeric instrument ID - Buy or sell direction - Amount or unit quantity - Order type and price constraints - Leverage and estimated maximum exposure - Stop-loss and take-profit settings - Estimated fees or other material consequences 4. Require affirmative confirmation after presenting the summary. Do not infer confirmation from an earlier or unrelated message. 5. Apply configurable limits for order value, leverage, aggregate exposure, and trading frequency. Reject transactions outside those limits or require stronger approval. 6. Validate instrument IDs, position IDs, order IDs, quantities, and account mode immediately before submission. 7. Make cancellation and position-closing actions subject to the same confirmation requirements as position opening. 8. Ensure execution logs redact authorization headers, API keys, user keys, tokens, and sensitive account information.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (2)

Credential Access

High
Category
Privilege Escalation
Content
## Authentication

Three auth modes (priority order):
1. **SSO Access Token** — `Authorization: Bearer <access_token>`
2. **SSO Auth Token** — `Authorization: <etoro_user_id>`
3. **API Keys** — `x-api-key` + `x-user-key` + `x-request-id` (UUID)
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Missing User Warnings

High
Confidence
97% confidence
Finding
The skill exposes real-money trading and order-cancellation capabilities, and it explicitly states that trading defaults to real mode unless demo is requested. In an agent setting, this creates a high risk of unintended financial actions because the user is not given prominent warnings, confirmation requirements, or safe-by-default constraints before destructive or irreversible operations are invoked.

Static analysis

No suspicious patterns detected.