T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:11
- Finding
- Bearer Authentication Token Embedded in MCP Connector URL<. - **Data flow**: Analytics queries are sent from Boring's server (Google Cloud, us-central1) to the platform's API on your behalf. Only performance metrics are retrieved — no content is uploaded or modified. - **No local credentials**: No local API keys, environment variables, or secrets are needed. All auth is embedded in the MCP link. ``` ```markdown 3. **Get your MCP link**: Go to **Settings** → copy your MCP Server URL (contains your auth token — treat it like a password) 4. **Add to Claude**: Paste the MCP link as a Connector — no install, no API key needed ``` ### Technical Analysis The Skill requires users to copy and configure an MCP URL containing an embedded authentication token. A credential-bearing URL functions as a bearer credential: possession of the complete URL may be sufficient to authenticate requests. Embedding secrets in URL paths or query strings is an insecure credential-handling practice because URLs may be retained or exposed through: - Con ...[truncated 2800 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace credential-bearing URLs with a standard OAuth authorization flow or another connector-native secret exchange. 2. Send access tokens in an `Authorization: Bearer` header rather than embedding them in URL paths or query strings. 3. Issue short-lived, audience-restricted, operation-scoped tokens and rotate them automatically. 4. Store connector credentials in an operating-system or application secret store rather than ordinary configuration. 5. Redact tokens and credential-bearing URLs from client logs, server access logs, proxy logs, telemetry, diagnostics, and error messages. 6. Disable unnecessary publication-history access by default. Request it separately and only when the user explicitly asks for publishing records. 7. Enforce read-only permissions server-side for every endpoint and test that analytics credentials cannot invoke publishing, deletion, account-management, or token-administration operations. 8. Provide token revocation, session visibility, last-used timestamps, and anomaly notifications. 9. Document the connector's actual local and cloud storage behavior instead of asserting that the credential is never written locally without control over the connector implementation. 10. Warn users not to paste the URL into chats, issue trackers, screenshots, or support messages, and provide a safe redacted identifier for troubleshooting. ]]>
