T09 · Insecure Skill Coding Practices
- Location
patch/dispatch-from-config.js:109- Finding
Unconditional Debug Logging Exposes Message Content and API Key Prefixes
- Content
View full analysis
config.maxTextLength) { console.log(`[TTS-SPEECH] FAIL: text too long`); return { success: false, error: `Text too long (${params.text.length} chars, max ${config.maxTextLength})`, }; } const userProvider = getTtsProvider(config, prefsPath); const overrideProvider = params.overrides?.provider; const provider = overrideProvider ?? userProvider; const providers = resolveTtsProviderOrder(provider); console.log(`[TTS-SPEECH] provider=${provider} userProvider=${userProvider} providers=${JSON.stringify(providers)} apiKey=${config.elevenlabs.apiKey ? "SET(" + config.elevenlabs.apiKey.slice(0, 8) + "...)" : "MISSING"}`); ``` ### Technical Analysis The patch writes diagnostic information directly to standard output using unconditional `console.log` calls. The dispatcher includes the first 80 characters of `ctx.Body`, which may contain private conversations, authentication material, personal d ...[truncated 2070 chars]- Remediation
View remediation
