T09 · Insecure Skill Coding Practices
Error
- Location
- references/protocol-routing.md:15
- Finding
- Default Third-Party Fetch Routing May Disclose Sensitive URLs and Headers<![CDATA[ ## Vulnerability Details **File Location**: `references/protocol-routing.md:15-28` **Vulnerability Type**: Sensitive information exposure through an external fetch proxy **Risk Level**: High ### Vulnerable Code ```markdown ## WEB_FETCH via URIBurner REST Use when: - fetching the source page to generate a feed from - no protocol preference is stated Endpoint: - `https://linkeddata.uriburner.com/chat/functions/WEB_FETCH` Parameters: - `url=<TARGET_URL>` (required) - `headers=<JSON_HEADERS>` (optional) - `max_redirects=<n>` (optional) - `timeout_seconds=<n>` (optional) ``` ### Technical Analysis The Skill makes an external URIBurner service the default route for fetching user-selected pages. This discloses the complete target URL to that service even though direct HTTP retrieval is sufficient for the declared feed-generation functionality. URLs may contain sensitive query parameters, signed download tokens, private document identifiers, embedded credentials, or other confidential data. The optional unrestricted `headers` parameter creates an additional risk that authentication or session headers could be forwarded to the third party. The separate instruction not to request credentials does not technically prevent an Agent from forwarding headers already supplied by a user or environment. This routing exceeds minimum privilege because the external intermediary is not required to extract public web-page content. ### Attack Path 1. A user supplies a URL containing a signed token, private path, document identifier, or sensitive query parameter. 2. Alternatively, the request includes headers such as `Authorization` or `Cookie`. 3. The Agent follows the documented default route and sends the URL and optional headers to the URIBurner endpoint. 4. The third-party service receives and can process or log the sensitive values. 5. Anyone with access to the service's request telemetry or logs may obtain the disclosed information. ### Impact Assessment Th ...[truncated 340 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Make a structured direct HTTP client the default fetch route. 2. Require explicit, informed user consent before sending requests through any third-party proxy. 3. Never forward `Authorization`, `Cookie`, `Proxy-Authorization`, API-key, or other credential-bearing headers. 4. Replace unrestricted `headers` input with a narrow allowlist, such as `Accept`, `Accept-Language`, and a controlled `User-Agent`. 5. Detect and redact common secret-bearing query parameters before proxying requests. 6. Clearly document the third party, the information transmitted, and applicable retention implications. 7. Prefer local processing whenever the target is publicly reachable without an intermediary. ]]>
