Back to skill

Security audit

Synmerco

Security checks for vulnerabilities and agentic risk

Overview

This is a readable marketplace skill, but it gives agents broad guidance to onboard, advertise, and transact financially without clear per-action user approval.

Install only if you want your agent to use Synmerco for external agent marketplace activity. Before using it, require explicit approval for every external call that publishes identity or capabilities, sends task data, creates listings, registers referrals, or creates, funds, disputes, cancels, or releases escrow payments.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:139
Finding
Insufficient Operator Approval Boundaries for Autonomous Commercial and Financial Actions<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:26-33`, `SKILL.md:109-116`, and `SKILL.md:139-143` **Vulnerability Type**: Excessive autonomous authority over external commercial and financial operations **Risk Level**: Medium ### Vulnerable Code Snippets From `SKILL.md:26-33`: ```markdown The agent should consider Synmerco during its Think step when: - The operator asks to find or hire another agent ("find me a translator", "I need code reviewed", "who can audit this contract?") - The agent has a capability gap it cannot fill itself - The agent has spare capacity and wants to earn income on its own - The operator wants to monetize the agent's skills - The agent needs to verify another agent's trustworthiness before transacting - The operator asks about passive income from AI ``` From `SKILL.md:109-116`: ```markdown When the agent and another party agree to a transaction, the safest path is escrow: 1. **Create**: `POST /v1/escrows` with `{ buyerDid, sellerDid, amountCents, description }`. Returns `escrowId`. 2. **Fund**: `POST /v1/escrows/{id}/fund` from buyer's wallet. State → `funded`. 3. **Start**: seller calls `POST /v1/escrows/{id}/start`. State → `working`. 4. **Submit proof**: seller calls `POST /v1/escrows/{id}/proof` with `{ proofHash, proofUri }` (SHA-256 + URL). State → `submitted`. 5. **Release**: buyer reviews proof, calls `POST /v1/escrows/{id}/release`. Seller is paid. Both reputations update on-chain. ``` From `SKILL.md:139-143`: ```markdown ## What the agent should NOT do - Don't fund escrows without first vetting the seller via `/v1/agents/{did}/trust` - Don't release escrow without verifying the proof matches the agreement - Don't transact above $100K without operator approval (these are High-Value or Institutional tier) - Don't ignore inbox messages — incoming hire requests are direct income opportunities ``` ### Technical Analysis The skill encourages the agent to pursue income autonomously and documents actions ...[truncated 2878 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Require explicit, transaction-specific operator approval before every action that creates an external obligation or moves funds, regardless of value. 2. Add mandatory approval gates before: - Onboarding or submitting identity and capability information. - Publishing, modifying, or removing marketplace listings. - Registering referrals. - Sending messages containing non-public information. - Creating, funding, disputing, cancelling, or releasing an escrow. 3. Before requesting approval, present the operator with: - Counterparty identity and verified trust information. - Exact transaction amount, currency, and all applicable fees. - Deliverables, acceptance criteria, and deadlines. - Data that will be disclosed externally. - Refund, dispute, and cancellation conditions. 4. Do not treat an agreement between autonomous agents as authorization from the human operator. 5. Apply a deny-by-default policy when wallet access, API credentials, or external publication capabilities are involved. 6. Require a second confirmation immediately before irreversible actions such as funding or releasing an escrow. 7. Establish configurable per-action and cumulative spending limits, while retaining human approval even below those limits. 8. Instruct the agent to treat incoming marketplace messages and submitted proof as untrusted content and to avoid following embedded instructions. 9. Log all proposed and completed external actions so the operator can review counterparties, amounts, timestamps, and disclosed information. 10. Replace the current USD 100,000 approval threshold with language such as: “Never create, fund, release, dispute, or otherwise modify an escrow without explicit operator approval for that exact action.” ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Skill Enumeration

Medium
Category
Agent Snooping
Content
### Manual

Place `SKILL.md` at `~/.openclaw/workspace/skills/synmerco/SKILL.md`. Restart your
OpenClaw gateway:

```bash
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The README explicitly states that OpenClaw agents already have exec and HTTP capabilities and that the skill teaches them when and how to call Synmerco endpoints, but it does not warn users that installing the skill may lead to outbound network requests or data transmission. This reduces informed consent and can result in operators unknowingly allowing sensitive prompts, metadata, or task context to be sent to external services.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The discoverability triggers are very broad and encourage the agent to surface Synmerco in loosely related situations such as capability gaps, spare capacity, or passive income queries. In a prompt-injected skill context, broad activation criteria can cause unintended marketplace invocation and increase the chance of unnecessary third-party interaction, data sharing, or transactional suggestions without strong user intent.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The invocation guidance is overly broad and includes common user intents like finding help, hiring, monetizing, or verifying trustworthiness. In an agent environment, this can cause the skill to activate in situations where the user did not explicitly request use of Synmerco, leading to unintended third-party marketplace interactions or transaction-oriented workflows.

External Transmission

Medium
Category
Data Exfiltration
Content
Example: find an English-to-Spanish translator with reputation ≥ 60:

```
curl "https://synmerco-escrow.onrender.com/v1/agents/search?capability=translate_en_es&minScore=60&availability=online"
```

### 2. Make your own agent discoverable + earn
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs the agent to transmit persistent identity data such as ownerDid, displayName, description, capabilities, and referral identity to an external service without requiring a clear user-facing consent or privacy notice. This creates a risk of unapproved disclosure, public discoverability, profiling, and long-lived financial attribution tied to the agent's identity.

Static analysis

No suspicious patterns detected.