Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
Network-reachable endpoint requiring only low-privilege guest auth; C:H for full API key exfiltration; I:L and A:L for indirect downstream key misuse.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
TypeBot is a chatbot builder tool. Versions prior to 3.17.0 allow a low-privilege guest member of a workspace to exfiltrate stored OpenAI-compatible API keys by invoking the OpenAI model-listing helper with an attacker-controlled baseUrl. The vulnerable path decrypts the selected workspace credential, creates an OpenAI client with the secret in both apiKey and the explicit api-key header, and then sends the outbound request to the caller-supplied URL. Because the permission check accepts any readable workspace member and listCredentials reveals credential identifiers to guests, a guest can force the server to deliver the workspace secret to attacker infrastructure. Version 3.17.0 patches the issue.
AnalysisAI
Credential exfiltration in Typebot prior to 3.17.0 allows a low-privilege guest workspace member to steal decrypted OpenAI-compatible API keys by invoking the model-listing endpoint with an attacker-controlled baseUrl. The server decrypts the stored credential and forwards the secret in both the Authorization header and an explicit api-key header to whatever URL the guest supplies, effectively acting as a credential-delivery proxy. This vulnerability has no public exploit identified at time of analysis, but the attack is trivially exploitable by any authenticated workspace guest with read access.
Technical ContextAI
Typebot (CPE: cpe:2.3:a:baptistearno:typebot.io:*:*:*:*:*:*:*:*) is an open-source chatbot builder that supports OpenAI-compatible integrations. The vulnerable component is the handleListModels API handler (apps/builder/src/features/blocks/integrations/openai/api/handleListModels.ts), which decrypts workspace credentials from the database and constructs an OpenAI client using the plaintext secret. Before the fix, this handler used isReadWorkspaceForbidden as its authorization gate, meaning any guest member with read access could invoke it. CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) precisely characterizes the root cause: the authorization boundary did not prevent read-privileged users from triggering an operation that exposes highly sensitive material (API keys) to attacker-controlled infrastructure. The companion fix to handleGetAccessToken.ts applied the same privilege escalation correction to Google Sheets OAuth tokens, suggesting a systemic pattern of overly permissive read-gate usage across integration handlers.
RemediationAI
Upgrade to Typebot version 3.17.0, which is confirmed available at https://github.com/baptisteArno/typebot.io/releases/tag/v3.17.0. This release replaces the isReadWorkspaceForbidden permission check with isWriteWorkspaceForbidden in both handleListModels.ts and handleGetAccessToken.ts, ensuring that only workspace members with write privileges can trigger credential-decrypting operations. If immediate upgrade is not possible, a compensating control is to remove all guest-role members from workspaces that store OpenAI-compatible credentials until patching is complete; this eliminates the low-privilege attack surface at the cost of losing guest collaboration capability. Alternatively, rotating all stored OpenAI API keys and replacing them with keys scoped to minimum necessary permissions limits the blast radius if exfiltration has already occurred. The GitHub pull request with the full diff is at https://github.com/baptisteArno/typebot.io/pull/2459 and the fixing commit is 7ae4c007d0987d2ca907b47e1b7418db62b8a157.
More in Typebot Io
View allServer-Side Request Forgery in Typebot chatbot builder versions 3.15.2 and prior allows unauthenticated remote attackers
Cross-workspace OAuth credential takeover in Typebot (open-source chatbot builder) before 3.17.0 lets a user holding onl
Unauthenticated cross-tenant file upload in Typebot.io chatbot builder versions 3.16.1 and earlier allows anonymous visi
Cleartext storage of API bearer tokens in the self-hosted open-source Typebot chatbot builder (version 3.16.1) lets anyo
Stored cross-site scripting in Typebot chatbot builder versions 3.15.2 and prior allows a malicious imported or collabor
Stored cross-site scripting in Typebot (chatbot builder) versions 3.15.2 and prior lets an authenticated user upload a c
Unauthenticated S3 path traversal in Typebot versions prior to 3.17.0 allows any attacker to obtain presigned S3 PUT URL
Server-side request forgery in Typebot chatbot builder before version 3.17.2 allows remote unauthenticated attackers to
Server-side request forgery in Typebot before 3.17.2 lets an authenticated workspace editor or creator bypass the shared
Server-side request forgery in Typebot versions 3.15.2 and prior allows authenticated users to bypass the validateHttpRe
Server-side request forgery in Typebot chatbot builder versions prior to 3.16.0 allows authenticated users to bypass SSR
Typebot's webhook resume endpoint exposes an insecure direct object reference flaw that allows any authenticated user ho
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-56238