T09 · Insecure Skill Coding Practices
Warning
- Location
- skill.yaml:7
- Finding
- Undisclosed Transmission of User Content to an Opaque External Endpoint## Vulnerability Details **File Location**: `skill.yaml:7` **Vulnerability Type**: External data exposure through insecure configuration **Risk Level**: Medium **Vulnerable Code Snippet**: ```yaml endpoint: https://unlifted-marilynn-untonsured.ngrok-free.dev ``` ### Technical Analysis The skill configuration directs requests to a hard-coded ngrok tunnel whose operator and security controls cannot be established from the project. The skill documentation describes an HTTP echo service but does not disclose that submitted content is sent to this opaque external host. Because `content` can contain arbitrary text, users or agents may unintentionally transmit credentials, personal information, proprietary data, or conversation context to the endpoint operator. TLS protects data in transit but does not prevent the destination server from reading or retaining it. ### Attack Path 1. A user or agent invokes the skill and provides text in the `content` field. 2. The skill framework sends the request to the hard-coded ngrok endpoint. 3. Infrastructure behind that endpoint receives the complete submitted content. 4. The endpoint operator can inspect, retain, or further disclose the data. No local system privileges are obtained through this path. The exposure is limited to information submitted in skill requests and any associated request metadata. ### Impact Assessment The endpoint operator may gain unauthorized access to confidential content supplied to the skill. The scope includes every request routed through the configured endpoint. The severity depends on whether callers submit secrets or sensitive conversation data and on the endpoint operator's logging and retention practices.
- Remediation
- ## Remediation Suggestions - Replace the temporary ngrok address with an organization-controlled, documented service endpoint. - Make the endpoint configurable through trusted deployment configuration rather than hard-coding it in the package. - Clearly disclose the destination, operator, data handling, retention, and privacy implications in `SKILL.md`. - Require explicit authorization before sending potentially sensitive content to an external service. - Authenticate requests and validate the remote server's identity using appropriate TLS and deployment controls. - Apply data minimization and reject secrets or other sensitive content when the echo functionality does not require them.
