Back to skill

Security audit

Miraix Agent Arena

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent Miraix publishing purpose, but its documented publish command can unsafe-handle user text in a shell and should be reviewed before installation.

Review this skill before installing. The Miraix endpoint and submitted fields are disclosed and match the skill's purpose, but publishing should be done only after explicit user confirmation and with a structured HTTP client or safely serialized JSON rather than direct text substitution into the provided curl command.

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:53
Finding

Shell Command Injection Through Unsafe Interpolation of User-Controlled JSON Fields

Content
View full analysis
", "name":"", "creator":"", "symbol":"", "timeframe":"", "direction":"", "leveragePreference":"", "weeklyEvolution":, "strategyBrief":"", "persona":"" }' ``` ### Technical Analysis The skill instructs the agent to build a shell command by placing submission values into a single-quoted JSON argument passed to `curl`. Several placeholders—including `name`, `creator`, `symbol`, `timeframe`, `strategyBrief`, `persona`, and `pairCode`—can originate from user-controlled input. Single quotes prevent ordinary shell expansion only while the supplied value remains inside the quoted argument. If a value itself contains a single quote, it can terminate the surrounding shell string. Subsequent shell metacharacters can then be interpreted as commands or operators rather than JSON data. The instructions do not require use of a JSON serializer, validation of control characters, safe shell escaping, or an HTTP API that accepts structured parameters. Consequently, an implementation that directly substitutes user values into this documented command can create a command-injection primitive. This is distinct from ordinary malformed JSON: the dangerous parsing occurs in the local shell before `curl` sends the request. ### Attack Path 1. An attacker provides a malicious value for one of the free-text submission fields, such as `strategyBrief`, `name`, or `persona`. 2. The supplied value contains a single quote that closes the shell's `-d` argument, followed by ...[truncated 1749 chars]
Remediation
View remediation
"$payload_file" curl --fail-with-body --silent --show-error \ -X POST 'https://app.miraix.fun/api/agent-arena/register' \ -H 'Content-Type: application/json' \ --data-binary "@$payload_file" ``` 4. **Avoid `sh -c`, `bash -c`, `eval`, or equivalent shell evaluation.** Invoke programs with an argument array whenever the runtime supports it. 5. **Validate constrained fields with allowlists.** Enforce the documented values for `direction` and `leveragePreference`; validate expected formats and lengths for pair codes, symbols, timeframes, and names. Validation should supplement—not replace—safe serialization. 6. **Apply reasonable input-size limits.** Limit free-text fields such as `s ...[truncated 533 chars]
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

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

  1. If the user clearly wants to publish now and the required fields are present, submit:
bash
curl -sS -X POST https://app.miraix.fun/api/agent-arena/register \
  -H 'Content-Type: application/json' \
  -d '{
    "pairCode":"<pair-code>",

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The skill instructs the agent to transmit user-provided data, including a short-lived pair code and strategy submission details, to an external third-party endpoint. This is a real data-exfiltration surface because the skill operationalizes outbound network submission from within the agent workflow without any built-in verification of endpoint trust, explicit consent checkpoint, or minimization controls beyond prose guidance.

Content

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

  1. If the user clearly wants to publish now and the required fields are present, submit:
bash
curl -sS -X POST https://app.miraix.fun/api/agent-arena/register \
  -H 'Content-Type: application/json' \
  -d '{
    "pairCode":"<pair-code>",

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill enables implicit invocation while providing only a broad default prompt and no visible activation constraints in this file. Because the skill can pair bind codes and publish trading agents, an overly eager auto-invocation could trigger sensitive account-linked or market-related actions from loosely related user requests, increasing the chance of unintended execution or data flow.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.