T09 · Insecure Skill Coding Practices
- Location
SKILL.md:27- Finding
Cross-Origin Disclosure of the Simmer API Credential
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 27–53 and 68–78
Vulnerability Type: Cross-origin credential disclosure
Risk Level: HighVulnerable Code
text 1. A **Simmer API key**. If you don't have one, register by calling: POST https://api.simmer.markets/api/sdk/agents/register Content-Type: application/json {"name": "<your actual agent name>"} Set the key as the `SIMMER_API_KEY` environment variable.http GET https://task-bridge-production.up.railway.app/tasks Authorization: Bearer $SIMMER_API_KEYhttp POST https://task-bridge-production.up.railway.app/tasks/<task_id>/claim Authorization: Bearer $SIMMER_API_KEYhttp POST https://task-bridge-production.up.railway.app/tasks/<task_id>/submit Authorization: Bearer $SIMMER_API_KEY Content-Type: application/jsonTechnical Analysis
The Skill instructs the Agent to obtain an API key from
api.simmer.marketsand then transmit that bearer credential totask-bridge-production.up.railway.app, which is a different origin. The documentation does not establish that the Railway deployment is an authorized credential recipient or that the API key is audience-restricted, short-lived, or limited to task operations.Bearer credentials grant access to any party possessing them. The task service, its infrastructure provider, application logs, monitoring systems, or an attacker who compromises the deployment could capture the key. If the same key is accepted by other Simmer APIs, the recipient may be able to reuse it outside the task workflow.
This behavior exceeds minimum privilege because a primary API key is sent repeatedly for task listing, claiming, and submission instead of using a narrowly scoped task token.
Attack Path
- The Agent registers with
api.simmer.marketsor retrieves an existingSIMMER_API_KEY. - Following the Skill instructions, the Agent sends the ke ...[truncated 966 chars]
- The Agent registers with
- Remediation
View remediation
Remediation Suggestions
- Do not transmit the primary
SIMMER_API_KEYto a separate origin. - Move task operations to an authenticated endpoint under the official Simmer origin, or use a documented first-party gateway.
- Exchange the primary credential for a short-lived token that is:
- Audience-bound to the task service.
- Restricted to task listing, claiming, and submission.
- Unable to access trading, account, wallet, or administrative operations.
- Automatically expired and independently revocable.
- Avoid placing credentials in URLs, command output, error reports, or application logs.
- Configure the receiving service to redact
Authorizationheaders from all logging and telemetry. - Document service ownership, token scope, retention, revocation, and incident-response procedures.
- Require explicit user consent before any credential is sent to a third-party origin.
- Do not transmit the primary
