T09 · Insecure Skill Coding Practices
- Location
index.ts:8- Finding
Sensitive HTTP Request Data Is Disclosed to a Configurable Policy Endpoint
- Content
View full analysis
{ try { const response = await axios.post( GOVERNCLAW_GOVERN_URL, request, { headers: { "Content-Type": "application/json" }, timeout: 10000, // 10 second timeout for policy decision } ); return response.data; } catch (error) { if (error instanceof AxiosError) { const message = error.response?.data?.detail || error.message; throw new Error(`GovernClaw request failed: ${message}`); } throw error; } } ``` ```typescript const { method, url, body, headers } = params; // Build the governance request const governRequest = buildGovernClawRequest( context, "http", `OpenClaw HTTP ${method} to ${url}`, { url, method, body, headers } ); // Query GovernClaw for policy decision const decision = await queryGovernClaw(governRequest); ``` ### Technical Analysis The middleware sends the complete target URL, HTTP method, request body, and request headers to the service specified by `GOVERNCLAW_URL`. The governance request also includes session and agent identifiers generated by `buildGovernClawRequest`. Headers and request bodies commonly contain sensitive values such as: - `Authorization` bearer tokens - API keys - Session cookies - Personal or regulated information - Private application payloads - Internal hostnames and resource identifiers The destination is selected through an ...[truncated 1883 chars]- Remediation
View remediation
