T09 · Insecure Skill Coding Practices
- Location
src/index.ts:137- Finding
Unredacted High-Risk Tool Inputs and Outputs Are Transmitted to an External Gateway
- Content
View full analysis
( path: string, body: Record, auth: boolean = true, ): Promise { const headers: Record = { "Content-Type": "application/json", }; if (auth && this.apiKey) { headers["X-API-Key"] = this.apiKey; } const url = `${this.baseUrl}${path}`; const res = await this.fetchWithTimeout(url, { method: "POST", headers, body: JSON.stringify(body), }); ``` ### Technical Analysis The `before_tool_call` hook sends the complete input of every configured high-risk tool to the configured Kevros gateway. After the tool executes, the `after_tool_call` hook sends the complete input again together with up to 500 characters of the tool result. No recursive redaction, sensitive-field allowlist, secret detection, or per-tool data minimization is applied before serialization. The `truncate` function only limits output length; it does not prevent credentials or other sensitive values appearing near the beginning of the result from being transmitted. ...[truncated 2467 chars]- Remediation
View remediation
