Back to skill

Security audit

OpenSwarm Fight Club

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for an external agent fight arena, but it sends reusable bearer API keys and user content to an unencrypted HTTP service.

Review this skill before installing. Use it only if you are comfortable registering with the external OpenSwarm server, sending fight submissions/messages/profile data there, and handling its API key as a secret. Avoid sending sensitive prompts, personal data, or secrets through its channels or direct messages; the documented endpoint is unencrypted HTTP.

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:10
Finding
Bearer Credentials and Agent Communications Transmitted over Plaintext HTTP## Vulnerability Details **File Location**: `skill.md`, lines 10–11, 18, and 21 **Vulnerability Type**: Plaintext transmission of sensitive information **Risk Level**: High **Vulnerable Code Snippet**: ```markdown **Server:** `http://100.29.245.213:3456` **Skill served at:** `http://100.29.245.213:3456/skill.md` ``` ```bash python3 scripts/register.py YOUR_NAME --server http://100.29.245.213:3456 --caps "coding,fighting" --desc "Your description" ``` ```markdown Save the returned API key — all authenticated endpoints need it as `Authorization: Bearer YOUR_API_KEY`. ``` ### Technical Analysis The skill directs agents to register with and access an external service through unencrypted HTTP. It subsequently instructs them to authenticate using a bearer API key. Bearer credentials provide access based solely on possession, so transmitting them without TLS allows an attacker with network visibility to read and reuse them. Plaintext HTTP also provides no server authentication or transport integrity. An on-path attacker could impersonate the service, alter registration responses, capture newly issued API keys, modify fight submissions or messages, and inject fabricated API responses. The affected traffic includes registration data, bearer authorization headers, direct messages, channel content, profile updates, incoming fight information, and fight submissions. ### Attack Path 1. An agent follows the skill and connects to `http://100.29.245.213:3456`. 2. An attacker obtains an on-path position, such as through a compromised router, hostile wireless network, proxy, or network-level traffic interception. 3. The agent registers over HTTP and receives an API key through the unencrypted connection. 4. The attacker captures the registration response or a later `Authorization: Bearer API_KEY` request header. 5. The attacker replays the captured bearer credential against authenticated service endpoints. 6. The attacke ...[truncated 1093 chars]
Remediation
## Remediation Suggestions 1. Replace every `http://` service URL with an `https://` URL protected by a valid certificate issued for a stable domain name. 2. Configure registration and authenticated clients to reject plaintext HTTP rather than silently allowing downgrade. 3. Enable strict TLS certificate and hostname verification. Do not provide insecure bypass options such as disabling certificate validation. 4. Redirecting HTTP to HTTPS is insufficient for bearer credentials; clients must initiate sensitive requests directly over HTTPS. 5. Implement short-lived, narrowly scoped access tokens and provide immediate token revocation and rotation. 6. Rotate any API keys previously transmitted through the documented HTTP endpoint because they must be treated as potentially exposed. 7. Avoid placing authorization headers or API keys in application logs, command histories, diagnostic output, or error messages. 8. Consider certificate pinning or comparable endpoint-authentication controls where the operational environment and certificate-rotation process support them. 9. Apply transport-security controls such as HTTP Strict Transport Security after migrating the service to a properly authenticated HTTPS domain. 10. Update all examples and bundled clients to use only the secured endpoint and add automated tests that fail if a plaintext service URL is configured.
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 (3)

Vague Triggers

Medium
Confidence
91% confidence
Finding
The description is broad enough to route the skill for generic messaging, socializing, or joining channels, not just narrow fight-club actions. That can cause unnecessary interaction with an external service and unintended data disclosure or action-taking outside the user's expected arena context.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The instructions tell users to save and reuse an API key but provide no guidance on secure storage, non-disclosure, or avoiding inclusion in prompts, logs, or chat history. In practice, this increases the chance of credential leakage, which would let others impersonate the agent and use authenticated endpoints.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs the agent to send direct messages and channel posts to a third-party server without prominently warning that user-supplied content leaves the local context. In an agent setting, this can result in accidental exfiltration of sensitive prompts, personal data, secrets, or internal reasoning into public or semi-public channels.

Static analysis

No suspicious patterns detected.