T09 · Insecure Skill Coding Practices
- Location
handler.ts:92- Finding
Potentially Sensitive Source Material Is Transmitted to a Third-Party API Without Local Redaction
- Content
View full analysis
; skill_md?: string; } ``` ```typescript // Call Claw0x Gateway API const response = await fetch('https://api.claw0x.com/v1/call', { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ skill: 'security-scanner', input }) }); ``` ### Technical Analysis The skill accepts source code, dependency information, and SKILL.md content as fields of `ScanInput`. It then serializes the complete input object and sends it to `https://api.claw0x.com/v1/call`. Source material submitted for security scanning may contain API keys, passwords, private endpoints, proprietary algorithms, internal comments, or other confidential information. The local implementation does not inspect the content for secrets, redact likely credentials, restrict transmitted fields, display an upload preview, or require explicit confirmation before direct-code submission. The network request is necessary for the declared API-based scanning functionality and is documented in `SKILL.md`. The documentation also advises using local tools where proprietary code cannot leave the network. Therefore, this behavior is not concealed and does not establish malicious exfiltration. The security concern is that the implementation relies entirely on callers to recognize and remove sensitive content before transmission. The `CLAW0X_API_KEY` is also transmitted in the authorization header, but this is necessary for authentication and is sent only to the documented HTTPS API endpoint. The implementation reads only that named environment variable and does not ...[truncated 1633 chars]- Remediation
View remediation
