Back to skill

Security audit

Nexora

Security checks for vulnerabilities and agentic risk

Overview

Nexora is a clearly described external task gateway, but it can transmit task data to a third-party service and sign paid USDC task payments without requiring explicit per-transaction user approval.

Install only if you are comfortable sending task details and source URLs to Nexora's external API and paying 0.012800 USDC per executed task. Require explicit confirmation before each paid execution, use a spending cap, and avoid submitting secrets, internal-only URLs, personal data, or confidential business material unless you have approval.

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
Findings (1)

other

Warning
Location
SKILL.md:33
Finding
Paid task execution lacks explicit user authorization## Vulnerability Details **File Location**: `SKILL.md`, lines 33–55 **Vulnerability Type**: Unauthorized payment **Risk Level**: Medium **Relevant snippet**: ```markdown 2. **Quote** — `POST https://api.x-402.online/v1/agent/quote` (free, no payment, no provider called). Returns the workflow it would run, the estimated cost, the price, the expected latency and the known limitations. 3. **Decide** — if the quote does not match the task, stop here. Nothing has been spent. 4. **Execute** — `POST https://api.x-402.online/v1/agent/task`. ```json { "objective": "summarise this page in three factual points", "source": "https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol", "requirements": { "verification": true } } ``` `budget` is optional: the price is fixed, and if you pass a cap below it the request is refused before any payment challenge. ## Payment x402. Call the endpoint, receive `HTTP 402` with the payment requirements, sign, retry with the payment header. **0.012800 USDC** per task, whatever the number of internal steps. USDC on Base or Solana. No account, no API key, no signup. ``` ### Technical Analysis The documented workflow directs the Agent to inspect a free quote, decide whether it matches the task, and then execute the paid endpoint. Execution requires signing an x402 payment challenge and retrying the request with the payment header. The instructions do not require explicit user approval after presenting the exact quote and before signing the payment. Consequently, a general request for a composed or externally orchestrated task can be interpreted as sufficient authority to spend funds. A quote check limits unexpected pricing but does not establish that the user knowingly authorized the transaction. The dangerous operation is signing and transmitting a payment backed by a funded wallet. This crosses the boundary between authorization to perform a task and authorization to transfer the user’s assets. The issue is reachable w ...[truncated 1563 chars]
Remediation
## Remediation Suggestions 1. Require explicit, transaction-specific user approval after obtaining the quote and before signing any payment challenge. 2. Present the objective, exact amount, currency, blockchain network, recipient or payment destination, and known limitations in the confirmation prompt. 3. Treat silence, ambiguous approval, or general task authorization as refusal to spend funds. 4. Require the approved quote identifier, amount, and destination to match the payment challenge before signing. 5. Enforce a user-configured per-task and cumulative spending cap; do not rely solely on the optional `budget` field. 6. Disable automatic payment retries. Any changed amount, network, recipient, objective, or expired quote should require renewed approval. 7. Prefer a dry-run or quote-only default unless the user explicitly requests paid execution. 8. Record transaction details and the corresponding approval for auditability without logging wallet secrets or signing material.
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)

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs the agent to send an objective and source URL to a third-party paid API, but it does not clearly warn that user-provided content will leave the local trust boundary and be processed by an external service. This creates a real data-handling and consent risk, especially if users provide sensitive URLs, proprietary objectives, or internal resources without understanding they will be transmitted externally.

External Transmission

Medium
Category
Data Exfiltration
Content
## How to use it

1. **Look** — `GET https://api.x-402.online/v1/agent/capabilities` (free). Returns the
   capabilities that are actually available, each with its `availability` field. A
   capability marked `degraded` is exactly that: do not rely on it.
2. **Quote** — `POST https://api.x-402.online/v1/agent/quote` (free, no payment, no
Confidence
94% confidence
Finding
This endpoint call discloses interaction with an external service, which means metadata such as timing, client identity, and requested capability checks may be exposed outside the local environment. In this skill's context, external transmission is expected, but it is still a real security-relevant behavior because it expands the trust boundary and may leak operational intent.

External Transmission

Medium
Category
Data Exfiltration
Content
1. **Look** — `GET https://api.x-402.online/v1/agent/capabilities` (free). Returns the
   capabilities that are actually available, each with its `availability` field. A
   capability marked `degraded` is exactly that: do not rely on it.
2. **Quote** — `POST https://api.x-402.online/v1/agent/quote` (free, no payment, no
   provider called). Returns the workflow it would run, the estimated cost, the price,
   the expected latency and the known limitations.
3. **Decide** — if the quote does not match the task, stop here. Nothing has been spent.
Confidence
98% confidence
Finding
The quote request sends task details to a third-party API to obtain workflow and pricing information. Even if no provider is called and no payment occurs, the task description itself may contain sensitive business intent, URLs, or proprietary information, so transmitting it externally without a prominent warning is dangerous.

External Transmission

Medium
Category
Data Exfiltration
Content
provider called). Returns the workflow it would run, the estimated cost, the price,
   the expected latency and the known limitations.
3. **Decide** — if the quote does not match the task, stop here. Nothing has been spent.
4. **Execute** — `POST https://api.x-402.online/v1/agent/task`.

```json
{
Confidence
99% confidence
Finding
The execute step sends the user's objective and source to an external orchestrator that may invoke multiple downstream capabilities. This is more dangerous than a simple fetch because users may unknowingly expose confidential prompts, internal URLs, or regulated data to a paid third-party workflow engine with additional sub-processors.

Natural-Language Policy Violations

Low
Confidence
79% confidence
Finding
The sample response includes French content such as `extrait`, `début`, `passe`, and `controles`, but the skill description does not explain that outputs or schema elements may be localized or language-dependent. This can create an implicit locale policy mismatch because the skill appears to force or assume a specific language without user opt-in or justification.

Static analysis

No suspicious patterns detected.