{"data":{"id":"96135911-abf6-4c15-98f2-d82145a46e6f","title":"GHSA-5fw2-mwhh-9947: Flowise: Unauthenticated TTS endpoint accepts arbitrary credential IDs — enables API credit abuse via stored credentials","summary":"The text-to-speech generate endpoint in Flowise, POST /api/v1/text-to-speech/generate, is whitelisted and requires no authentication. When called without a chatflowId, it takes an attacker-supplied credentialId from the request body and uses the stored credential, such as an OpenAI or ElevenLabs API key, to generate speech. An unauthenticated attacker can therefore spend a victim's API credits, and the source says this is trivially exploitable when combined with a credential ID leak described in Finding 2.","solution":"The source suggests removing the TTS endpoint from WHITELIST_URLS, or validating that the credential belongs to the chatflow being used. It proposes returning a 401 'Authentication required' response when no chatflowId is provided.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-5fw2-mwhh-9947","publishedAt":"2026-04-17T21:35:14.000Z","cveId":null,"cweIds":null,"cvssScore":null,"cvssSeverity":"high","severity":"high","attackType":["denial_of_service"],"issueType":"vulnerability","affectedPackages":["flowise@<= 3.0.13 (fixed: 3.1.0)"],"affectedPackageNames":["flowise"],"affectedPackageRefs":["npm:flowise"],"affectedVendors":["OpenAI"],"affectedVendorsRaw":["Flowise","OpenAI","ElevenLabs","Azure OpenAI","Google Cloud Text-to-Speech"],"classifierModel":"claude-haiku-5-5","classifierPromptVersion":"v4","summaryPromptVersion":"v2","headline":null,"headlinePromptVersion":null,"cvssVector":null,"attackVector":null,"attackComplexity":null,"privilegesRequired":null,"userInteraction":null,"exploitMaturity":null,"epssScore":null,"epssCheckedAt":null,"kevDateAdded":null,"advisoryAliases":["GHSA-5fw2-mwhh-9947"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-04-17T21:35:14.000Z","capecIds":null,"crossRefCount":0,"attackSophistication":"trivial","impactType":["confidentiality","availability"],"aiComponentTargeted":"api","llmSpecific":false,"classifierConfidence":0.9,"researchCategory":null,"atlasIds":null}}