Typebot CVE-2026-48759
HIGHSeverity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Network-reachable API, trivial request crafting, requires any low-priv non-guest workspace member (PR:L), no UI, high integrity from arbitrary template overwrite, low availability from deletion, no confidentiality impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
TypeBot is a chatbot builder tool. Versions 3.15.2 and below have an Insecure Direct Object Reference vulnerability through cross-workspace Theme Template modification and deletion. The handleSaveThemeTemplate and handleDeleteThemeTemplate handlers validate that the authenticated user is a non-guest member of the provided workspaceId, but then operate on themeTemplateId via Prisma queries that do NOT include workspaceId in the WHERE clause. This allows any authenticated user to modify or delete theme templates belonging to any other workspace and may expose Template IDs via shared typebots or network traffic. This issue has been fixed in version 3.16.0.
AnalysisAI
Cross-workspace tampering in Typebot 3.15.2 and earlier allows any authenticated workspace member to modify or delete theme templates belonging to other workspaces by supplying a foreign themeTemplateId to the handleSaveThemeTemplate and handleDeleteThemeTemplate handlers. The handlers verify only that the caller is a non-guest member of the workspaceId argument but execute Prisma queries that omit workspaceId from the WHERE clause, producing an Insecure Direct Object Reference (CWE-639). No public exploit identified at time of analysis, and the issue was remediated in Typebot 3.16.0.
Technical ContextAI
Typebot.io is an open-source chatbot builder by baptisteArno (CPE cpe:2.3:a:baptistearno:typebot.io) that uses a multi-tenant workspace model where users belong to workspaces and templates/typebots are scoped to a workspaceId. The vulnerability is an authorization-check / data-access mismatch: the API authorizes the caller against the workspaceId parameter sent by the client, but the underlying Prisma update/delete query keys solely on themeTemplateId without re-binding to that workspace. This is the textbook CWE-639 (Authorization Bypass Through User-Controlled Key) pattern - the trust boundary is checked on one identifier while the database operation is performed on another. Theme Template IDs can leak through shared typebots or network traffic, removing the practical secrecy that might otherwise have served as an implicit access control.
RemediationAI
Vendor-released patch: Typebot 3.16.0 - upgrade self-hosted deployments to v3.16.0 or later (https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0) and consult GHSA-qv4p-4mp3-pvpv (https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-qv4p-4mp3-pvpv) for advisory details. If immediate upgrade is not possible, a targeted workaround is to patch the handleSaveThemeTemplate and handleDeleteThemeTemplate handlers to include workspaceId in the Prisma WHERE clause (e.g., where: { id: themeTemplateId, workspaceId }) so the authorization check and database key match; this is a small local code change with no user-facing side effects. As a coarser compensating control, restrict workspace membership to trusted users and disable open self-signup on shared instances until patched, accepting the trade-off of reduced onboarding flow. Audit theme templates after upgrade to detect any prior tampering or unexpected deletions, since the bug leaves no native audit trail.
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
Credential exfiltration in Typebot prior to 3.17.0 allows a low-privilege guest workspace member to steal decrypted Open
Server-side request forgery in Typebot chatbot builder versions prior to 3.16.0 allows authenticated users to bypass SSR
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today