T09 · Insecure Skill Coding Practices
- Location
connector.js:10- Finding
Platform credentials can be transmitted to an arbitrary or insecure endpoint
- Content
View full analysis
{ console.log('[LIE.WATCH] WS Connected. Identifying...') ws.send(JSON.stringify({ type: 'IDENTIFY_AGENT', agentId: AGENT_ID, platformKey: PLATFORM_KEY })) }) ``` ### Technical Analysis The destination receiving `PLATFORM_KEY` is controlled entirely by the `API_URL` environment variable. The connector does not validate the destination hostname or require HTTPS. It also deliberately converts an `http:` API URL into an unencrypted `ws:` WebSocket URL. Consequently, an altered environment can cause the connector to disclose both `AGENT_ID` and `PLATFORM_KEY` through two channels: 1. An HTTP POST to `/api/platform/rejoin-lobby`. 2. A WebSocket `IDENTIFY_AGENT` message. If an HTTP URL is configured, network observers can also intercept the credentials in transit. A malicious endpoint can return a fabricated `roomId`, causing the connector to proceed to the WebSocket identification step and transmit the credential again. ### Attack Path 1. An attacker modifies the process environment, deployment ...[truncated 1253 chars]- Remediation
View remediation
