T09 · Insecure Skill Coding Practices
- Location
src/api.ts:291- Finding
Authenticated API requests can be redirected to an arbitrary endpoint
- Content
View full analysis
''); if (res.status === 401) throw new Error('Voice.ai: Invalid or missing API key (401).'); if (res.status === 402) throw new Error('Voice.ai: Insufficient credits (402). Check your dashboard.'); if (res.status === 429) throw new Error('Voice.ai: Rate limited (429). Wait and retry.'); throw new Error(`Voice.ai TTS error ${res.status}: ${errBody}`); } return Buffer.from(await res.arrayBuffer()); ``` ### Technical Analysis The client uses `VOICEAI_API_BASE` without validating its URL scheme, hostname, port, or origin. All API paths are then constructed from this value, ...[truncated 2420 chars]- Remediation
View remediation
