T09 · Insecure Skill Coding Practices
- Location
SKILL.md:26- Finding
API Credential Exposed in MCP Endpoint Query String
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 26–29
Vulnerability Type: API credential exposure through a URL query parameter
Risk Level: Mediumtext # 3. Copy the API key shown after authorization # 4. Configure the MCP server endpoint https://mcp.reepl.io/mcp?key=YOUR_API_KEYTechnical Analysis
The setup instructions require placing the Reepl API key in the MCP endpoint's URL query string. Although HTTPS protects the URL in transit, query strings are commonly retained in MCP client configuration, browser or client history, application logs, reverse-proxy access logs, monitoring and telemetry systems, screenshots, and diagnostic output.
An API key should be treated as a bearer credential. Embedding it in a URL creates unnecessary opportunities for disclosure compared with a secret-specific authentication channel such as an HTTP
Authorizationheader. This behavior is not required for the Skill's declared functionality; authentication can be implemented without including the credential in the endpoint URL.Attack Path
- A user completes OAuth authorization and receives a Reepl API key.
- Following the documented setup, the user inserts that key into the MCP endpoint query string.
- The complete URL is persisted or captured by a client configuration file, access log, telemetry event, screenshot, support bundle, or other diagnostic output.
- An attacker or unauthorized internal party obtains access to that retained data.
- The attacker extracts the API key and authenticates to Reepl's MCP endpoint.
- Subject to the key's server-side scope and connected integrations, the attacker invokes available Reepl operations under the victim's identity.
Impact Assessment
A leaked key may permit unauthorized access to data and actions exposed by the Reepl MCP integration. The documented tools include access to the user's profile and email address, voice profile, LinkedIn contacts ...[truncated 497 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the API key from the MCP endpoint query string.
- Authenticate using
Authorization: Bearer <key>or an equivalent MCP-supported secret transport mechanism. - Read
REEPL_MCP_KEYfrom protected environment or secret storage and ensure it is never interpolated into a logged URL. - Redact credentials from application logs, proxy logs, telemetry, error reports, and support bundles.
- Store configuration files containing secrets with restrictive filesystem permissions and exclude them from source control and backups where possible.
- Issue narrowly scoped, short-lived credentials where supported, with separate permissions for read and destructive or publishing operations.
- Provide documented key revocation and rotation procedures, and rotate any keys previously placed in URLs.
- Preserve the existing explicit-confirmation requirement for publishing while also enforcing authorization and confirmation controls server-side.
