Typebot Io
Monthly
Unauthenticated S3 path traversal in Typebot versions prior to 3.17.0 allows any attacker to obtain presigned S3 PUT URLs for arbitrary object keys - including other tenants' private paths - by supplying an attacker-controlled filePath parameter to a deprecated public upload endpoint. Exploitation requires only knowledge of a valid public typebotId and blockId, both of which are typically visible in chatbot embed codes or share links. No public exploit has been confirmed at time of analysis, and this CVE does not appear in CISA KEV, but the CVSS:3.1 AV:N/AC:L/PR:N/UI:N vector indicates trivial remote unauthenticated exploitation against any Typebot deployment with S3 storage configured.
Cross-workspace OAuth credential takeover in Typebot (open-source chatbot builder) before 3.17.0 lets a user holding only read-collaborator access on a bot read a workspace's OAuth `credentialsId` and then overwrite that credential by calling handleUpdateOAuthCredentials() with an attacker-controlled writable `workspaceId`. Because the update authorized only the attacker's supplied workspace but then located and mutated the credential by its global `id` alone (and rewrote its `workspaceId`), a low-privilege user in one workspace can seize and reassign OAuth credentials belonging to another workspace. Rated CVSS 9.9; no public exploit identified at time of analysis, though the fixing commit and PR are public.
Typebot's webhook resume endpoint exposes an insecure direct object reference flaw that allows any authenticated user holding read access to at least one typebot to inject arbitrary JSON payloads into a suspended webhook session owned by a completely different typebot on the same instance. The handler validates authorization against the caller-supplied typebotId but then resolves the session result record solely by resultId without binding it to the authorized typebot, enabling an attacker to mix a legitimately authorized typebotId and blockId with a foreign live resultId to hijack cross-tenant execution flow and advance the victim's business logic. No public exploit has been identified at time of analysis; vendor-released patch version 3.17.0 is available and resolves the flaw.
Cross-workspace credential injection in Typebot's Google Sheets OAuth callback allows an authenticated attacker to plant Google Sheets credentials into workspaces they do not own, and - if target IDs are known - attach those credentials to blocks inside victim Typebots. The root cause is that the OAuth callback decodes and blindly trusts a client-supplied, unprotected base64 JSON state parameter without verifying the authenticated user holds write access to the referenced workspaceId or typebotId. All Typebot versions prior to 3.17.0 are affected; no public exploit has been identified and this vulnerability is not listed in the CISA KEV catalog.
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.
Unauthorized cross-workspace Google Sheets credential exposure in Typebot prior to version 3.17.0 allows any authenticated user to call the `POST /api/sheets/getSheets` endpoint with an arbitrary workspace ID, bypassing membership checks entirely. The handler decrypts and returns the target workspace's stored Google Sheets OAuth tokens along with spreadsheet metadata (sheet names, IDs, and column headers), constituting a direct credential theft vector against any workspace with a Google Sheets integration configured. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis, but the low exploitation complexity makes this a credible insider or multi-tenant threat.
Cleartext storage of API bearer tokens in the self-hosted open-source Typebot chatbot builder (version 3.16.1) lets anyone with read access to the backing database recover every user's builder-API credential verbatim and impersonate that user with no password or MFA. The tokens were persisted with the plaintext value returned by generateId(24) rather than a hash, so a single database disclosure - via SQL injection, an exposed backup, or insider access - yields full account takeover across all tenants. Version 3.17.0 remediates the flaw by SHA-256 hashing tokens at rest; there is no public exploit identified at time of analysis and it is not in CISA KEV.
Server-side request forgery in Typebot before 3.17.2 lets an authenticated workspace editor or creator bypass the shared SSRF validator using the IPv6 unspecified address :: (and its expanded form), which validateIPAddress in packages/lib/src/ssrf/validateHttpReqUrl.ts fails to block. By configuring a server-side HTTP Request block or guarded script fetch, an attacker coerces the Typebot server to reach local HTTP services via safeKy, including flows reachable through startChat and continueChat endpoints. No public exploit identified at time of analysis, but the fix is confirmed in 3.17.2 and the technical root cause is documented in the vendor advisory.
Server-side request forgery in Typebot chatbot builder before version 3.17.2 allows remote unauthenticated attackers to bypass SSRF protections via DNS rebinding, reaching internal services and cloud metadata endpoints. The validator resolves a hostname once for allowlist checks, but the subsequent HTTP request performs a fresh DNS resolution without IP pinning, creating a time-of-check to time-of-use (TOCTOU) gap. No public exploit identified at time of analysis, though the fix commit and detailed advisory are publicly available on GitHub.
Unauthenticated cross-tenant file upload in Typebot.io chatbot builder versions 3.16.1 and earlier allows anonymous visitors of any published bot containing a file-input block to write attacker-controlled HTML, SVG, or JavaScript into arbitrary subpaths of the shared public S3 bucket. The flaw stems from an unauthenticated presigned-URL endpoint that trusts a raw fileName parameter and does not bind Content-Type, enabling stored XSS on the storage origin and content hosting under other tenants' result paths. No public exploit identified at time of analysis, but the CVSS 9.3 (scope-changed) reflects significant cross-tenant impact.
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.
Authorization bypass in Typebot chatbot builder versions 3.15.2 and prior allows any authenticated user to access credentials from arbitrary workspaces via the preview chat endpoint. The bot-engine's getCredentials() utility uses a falsy check on workspaceId, so supplying an empty string bypasses ownership validation entirely, enabling credential theft, external service abuse, and data breach. This is an incomplete fix for the prior advisory GHSA-4xc5-wfwc-jw47, and no public exploit has been identified at time of analysis though the patch commit is public.
Stored cross-site scripting in Typebot (chatbot builder) versions 3.15.2 and prior lets an authenticated user upload a crafted SVG containing embedded JavaScript through the profile picture upload form; because the file is served unsanitized from the app.typebot.io domain via a permanent public link, the script executes in the browser of anyone who views it, enabling session/token theft, account takeover, and data exfiltration. Publicly available exploit code exists (SSVC: POC), but there is no confirmed active exploitation and EPSS is very low (0.05%, 15th percentile) with no CISA KEV listing.
Server-side request forgery in Typebot versions 3.15.2 and prior allows authenticated users to bypass the validateHttpReqUrl() SSRF filter by chaining an attacker-controlled HTTP 302 redirect, since the underlying ky and fetch clients follow redirects without re-validating the destination. This enables reaching AWS instance metadata at 169.254.169.254, private subnets, and container-internal services from the Typebot server, with realistic impact including theft of cloud IAM credentials. No public exploit identified at time of analysis, and the issue is fixed in version 3.16.0.
Server-side request forgery in Typebot chatbot builder versions prior to 3.16.0 allows authenticated users to bypass SSRF protections in Webhook and HTTP Request blocks by supplying attacker-controlled hostnames that resolve via DNS to loopback (127.0.0.1), cloud metadata (169.254.169.254), or RFC1918 private addresses. The validation logic only inspected the URL string and literal IP formats without performing DNS resolution, so a benign-looking domain could route the backend HTTP client to internal targets. No public exploit identified at time of analysis, though the GitHub Security Advisory and fix commit are publicly visible.
Server-Side Request Forgery in Typebot chatbot builder versions 3.15.2 and prior allows unauthenticated remote attackers to abuse the preview chat endpoint to make arbitrary internal HTTP requests from the server. The flaw stems from the isolated-vm sandbox's fetch function calling Node.js native fetch without the SSRF validation (validateHttpReqUrl) that protects HTTP Request blocks, bypassing mitigations added after GHSA-8gq9-rw7v-3jpr. No public exploit identified at time of analysis, but the CVSS 10.0 (Critical) score with scope-changed impact indicates severe risk for both self-hosted and hosted deployments.
Stored cross-site scripting in Typebot chatbot builder versions 3.15.2 and prior allows a malicious imported or collaborator-crafted bot to execute arbitrary HTML/JavaScript in the authenticated builder context via the RatingButton component's customIcon.svg field. Because the builder preview renders bots inline on builder.typebot.io under a CSP permitting 'unsafe-inline', successful exploitation enables session hijacking and privilege escalation within the SaaS builder, with no public exploit identified at time of analysis.
Server-Side Request Forgery (SSRF) in Typebot's OpenAI 'Create Transcription' action handler allows authenticated users to direct the Typebot server to fetch arbitrary internal or localhost URLs via a user-supplied audio URL parameter. The unprotected `fetch()` call in `createTranscriptionHandler.ts` bypasses the `safeKy` SSRF guard used elsewhere in the codebase, enabling internal network reconnaissance with response content leaked back through the OpenAI Whisper transcription result. Versions prior to 3.16.0 are affected; the fix is confirmed released and no public exploit or CISA KEV listing exists at time of analysis.
Server-Side Request Forgery (SSRF) in Typebot's WhatsApp status webhook forwarding allows an authenticated workspace user to pivot the Typebot server into probing or interacting with internal network hosts, cloud metadata endpoints, or localhost services. The vulnerability exists in all Typebot versions prior to 3.17.0 and is triggered server-side whenever the public WhatsApp webhook receives a status payload, requiring no further interaction after the malicious URL is configured. No public exploit code or CISA KEV listing has been identified at time of analysis, but the attack is straightforward for any workspace member with WhatsApp integration configuration access.
Missing HMAC signature validation on Typebot's WhatsApp Cloud API webhook endpoint exposes versions 3.16.0 and prior to unauthenticated webhook spoofing by any network-accessible attacker. The endpoint POST /v1/workspaces/{workspaceId}/whatsapp/{credentialsId}/webhook ignores the x-hub-signature-256 header that Meta includes with every legitimate delivery, and because both path parameters are semi-public by design - appearing in web server access logs and Meta's webhook configuration dashboard - the attack surface is readily discoverable. Successful exploitation allows an attacker to trigger arbitrary bot automation flows, consume API resources, and abuse external service integrations using the workspace owner's stored credentials. No public exploit identified at time of analysis; vendor-released patch available in version 3.17.0.
Cross-typebot result data leakage in Typebot versions 3.15.2 and prior allows an authenticated user to read session variables, prior answers, and PII from a different typebot by supplying a foreign resultId to the startChat endpoint. The bot engine's findResult query omits typebotId from its database filter (CWE-639 IDOR), so any valid result record is returned regardless of which typebot owns it. If the attacker possesses a valid CUID2 resultId from another typebot and that typebot has rememberUser enabled, they can read the original user's names, emails, phone numbers, and other session variables exposed through matching variable names. No public exploit has been identified at time of analysis; vendor-released patch is available in version 3.16.0.
Typebot 3.15.2 exposes complete private bot definitions across all workspaces to any authenticated platform user via a broken authorization check in the getLinkedTypebots API endpoint, constituting a classic IDOR. The root cause is a JavaScript async/await misuse: Array.filter() is synchronous, so passing it an async callback causes every bot to pass the filter - the isReadTypebotForbidden predicate is never actually evaluated. Sensitive data leaked includes embedded credentials, API keys, PII stored as variables, webhook URLs, and integration configurations from any other user's private workspace bots. No public exploit has been identified at time of analysis and this CVE is not listed in CISA KEV, but the exposure of hardcoded secrets elevates practical risk significantly beyond the 6.5 CVSS score suggests.
Stored XSS in Typebot's JavaScript viewer embed (packages/embeds/js) allows any authenticated bot author - including free-tier users - to inject arbitrary JavaScript into a visitor's browser by setting a rich text bubble link URL to a javascript: URI. When a visitor clicks the malicious link within an embedded bot, the payload executes in the host page's origin (S:C scope change), enabling exfiltration of cookies and session tokens from the embedding third-party site. No public exploit code or active exploitation is confirmed at time of analysis; a vendor-released patch is available in v3.16.0.
Insecure Direct Object Reference (IDOR) in Typebot's getResultLogs API endpoint allows any authenticated user to read execution logs belonging to other workspaces by supplying an arbitrary victim resultId alongside their own authorized typebotId. The endpoint authorizes the caller by typebotId but fetches log records by resultId alone, skipping cross-ownership validation that all peer endpoints in the same router correctly enforce. Exploitation exposes sensitive runtime data including HTTP response bodies, AI model outputs, and webhook payloads. No public exploit or CISA KEV listing has been identified at time of analysis, but the straightforward nature of the IDOR - requiring only a valid session and a guessed or enumerated resultId - makes unauthorized data access realistic for any authenticated platform user.
Unauthenticated S3 path traversal in Typebot versions prior to 3.17.0 allows any attacker to obtain presigned S3 PUT URLs for arbitrary object keys - including other tenants' private paths - by supplying an attacker-controlled filePath parameter to a deprecated public upload endpoint. Exploitation requires only knowledge of a valid public typebotId and blockId, both of which are typically visible in chatbot embed codes or share links. No public exploit has been confirmed at time of analysis, and this CVE does not appear in CISA KEV, but the CVSS:3.1 AV:N/AC:L/PR:N/UI:N vector indicates trivial remote unauthenticated exploitation against any Typebot deployment with S3 storage configured.
Cross-workspace OAuth credential takeover in Typebot (open-source chatbot builder) before 3.17.0 lets a user holding only read-collaborator access on a bot read a workspace's OAuth `credentialsId` and then overwrite that credential by calling handleUpdateOAuthCredentials() with an attacker-controlled writable `workspaceId`. Because the update authorized only the attacker's supplied workspace but then located and mutated the credential by its global `id` alone (and rewrote its `workspaceId`), a low-privilege user in one workspace can seize and reassign OAuth credentials belonging to another workspace. Rated CVSS 9.9; no public exploit identified at time of analysis, though the fixing commit and PR are public.
Typebot's webhook resume endpoint exposes an insecure direct object reference flaw that allows any authenticated user holding read access to at least one typebot to inject arbitrary JSON payloads into a suspended webhook session owned by a completely different typebot on the same instance. The handler validates authorization against the caller-supplied typebotId but then resolves the session result record solely by resultId without binding it to the authorized typebot, enabling an attacker to mix a legitimately authorized typebotId and blockId with a foreign live resultId to hijack cross-tenant execution flow and advance the victim's business logic. No public exploit has been identified at time of analysis; vendor-released patch version 3.17.0 is available and resolves the flaw.
Cross-workspace credential injection in Typebot's Google Sheets OAuth callback allows an authenticated attacker to plant Google Sheets credentials into workspaces they do not own, and - if target IDs are known - attach those credentials to blocks inside victim Typebots. The root cause is that the OAuth callback decodes and blindly trusts a client-supplied, unprotected base64 JSON state parameter without verifying the authenticated user holds write access to the referenced workspaceId or typebotId. All Typebot versions prior to 3.17.0 are affected; no public exploit has been identified and this vulnerability is not listed in the CISA KEV catalog.
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.
Unauthorized cross-workspace Google Sheets credential exposure in Typebot prior to version 3.17.0 allows any authenticated user to call the `POST /api/sheets/getSheets` endpoint with an arbitrary workspace ID, bypassing membership checks entirely. The handler decrypts and returns the target workspace's stored Google Sheets OAuth tokens along with spreadsheet metadata (sheet names, IDs, and column headers), constituting a direct credential theft vector against any workspace with a Google Sheets integration configured. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis, but the low exploitation complexity makes this a credible insider or multi-tenant threat.
Cleartext storage of API bearer tokens in the self-hosted open-source Typebot chatbot builder (version 3.16.1) lets anyone with read access to the backing database recover every user's builder-API credential verbatim and impersonate that user with no password or MFA. The tokens were persisted with the plaintext value returned by generateId(24) rather than a hash, so a single database disclosure - via SQL injection, an exposed backup, or insider access - yields full account takeover across all tenants. Version 3.17.0 remediates the flaw by SHA-256 hashing tokens at rest; there is no public exploit identified at time of analysis and it is not in CISA KEV.
Server-side request forgery in Typebot before 3.17.2 lets an authenticated workspace editor or creator bypass the shared SSRF validator using the IPv6 unspecified address :: (and its expanded form), which validateIPAddress in packages/lib/src/ssrf/validateHttpReqUrl.ts fails to block. By configuring a server-side HTTP Request block or guarded script fetch, an attacker coerces the Typebot server to reach local HTTP services via safeKy, including flows reachable through startChat and continueChat endpoints. No public exploit identified at time of analysis, but the fix is confirmed in 3.17.2 and the technical root cause is documented in the vendor advisory.
Server-side request forgery in Typebot chatbot builder before version 3.17.2 allows remote unauthenticated attackers to bypass SSRF protections via DNS rebinding, reaching internal services and cloud metadata endpoints. The validator resolves a hostname once for allowlist checks, but the subsequent HTTP request performs a fresh DNS resolution without IP pinning, creating a time-of-check to time-of-use (TOCTOU) gap. No public exploit identified at time of analysis, though the fix commit and detailed advisory are publicly available on GitHub.
Unauthenticated cross-tenant file upload in Typebot.io chatbot builder versions 3.16.1 and earlier allows anonymous visitors of any published bot containing a file-input block to write attacker-controlled HTML, SVG, or JavaScript into arbitrary subpaths of the shared public S3 bucket. The flaw stems from an unauthenticated presigned-URL endpoint that trusts a raw fileName parameter and does not bind Content-Type, enabling stored XSS on the storage origin and content hosting under other tenants' result paths. No public exploit identified at time of analysis, but the CVSS 9.3 (scope-changed) reflects significant cross-tenant impact.
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.
Authorization bypass in Typebot chatbot builder versions 3.15.2 and prior allows any authenticated user to access credentials from arbitrary workspaces via the preview chat endpoint. The bot-engine's getCredentials() utility uses a falsy check on workspaceId, so supplying an empty string bypasses ownership validation entirely, enabling credential theft, external service abuse, and data breach. This is an incomplete fix for the prior advisory GHSA-4xc5-wfwc-jw47, and no public exploit has been identified at time of analysis though the patch commit is public.
Stored cross-site scripting in Typebot (chatbot builder) versions 3.15.2 and prior lets an authenticated user upload a crafted SVG containing embedded JavaScript through the profile picture upload form; because the file is served unsanitized from the app.typebot.io domain via a permanent public link, the script executes in the browser of anyone who views it, enabling session/token theft, account takeover, and data exfiltration. Publicly available exploit code exists (SSVC: POC), but there is no confirmed active exploitation and EPSS is very low (0.05%, 15th percentile) with no CISA KEV listing.
Server-side request forgery in Typebot versions 3.15.2 and prior allows authenticated users to bypass the validateHttpReqUrl() SSRF filter by chaining an attacker-controlled HTTP 302 redirect, since the underlying ky and fetch clients follow redirects without re-validating the destination. This enables reaching AWS instance metadata at 169.254.169.254, private subnets, and container-internal services from the Typebot server, with realistic impact including theft of cloud IAM credentials. No public exploit identified at time of analysis, and the issue is fixed in version 3.16.0.
Server-side request forgery in Typebot chatbot builder versions prior to 3.16.0 allows authenticated users to bypass SSRF protections in Webhook and HTTP Request blocks by supplying attacker-controlled hostnames that resolve via DNS to loopback (127.0.0.1), cloud metadata (169.254.169.254), or RFC1918 private addresses. The validation logic only inspected the URL string and literal IP formats without performing DNS resolution, so a benign-looking domain could route the backend HTTP client to internal targets. No public exploit identified at time of analysis, though the GitHub Security Advisory and fix commit are publicly visible.
Server-Side Request Forgery in Typebot chatbot builder versions 3.15.2 and prior allows unauthenticated remote attackers to abuse the preview chat endpoint to make arbitrary internal HTTP requests from the server. The flaw stems from the isolated-vm sandbox's fetch function calling Node.js native fetch without the SSRF validation (validateHttpReqUrl) that protects HTTP Request blocks, bypassing mitigations added after GHSA-8gq9-rw7v-3jpr. No public exploit identified at time of analysis, but the CVSS 10.0 (Critical) score with scope-changed impact indicates severe risk for both self-hosted and hosted deployments.
Stored cross-site scripting in Typebot chatbot builder versions 3.15.2 and prior allows a malicious imported or collaborator-crafted bot to execute arbitrary HTML/JavaScript in the authenticated builder context via the RatingButton component's customIcon.svg field. Because the builder preview renders bots inline on builder.typebot.io under a CSP permitting 'unsafe-inline', successful exploitation enables session hijacking and privilege escalation within the SaaS builder, with no public exploit identified at time of analysis.
Server-Side Request Forgery (SSRF) in Typebot's OpenAI 'Create Transcription' action handler allows authenticated users to direct the Typebot server to fetch arbitrary internal or localhost URLs via a user-supplied audio URL parameter. The unprotected `fetch()` call in `createTranscriptionHandler.ts` bypasses the `safeKy` SSRF guard used elsewhere in the codebase, enabling internal network reconnaissance with response content leaked back through the OpenAI Whisper transcription result. Versions prior to 3.16.0 are affected; the fix is confirmed released and no public exploit or CISA KEV listing exists at time of analysis.
Server-Side Request Forgery (SSRF) in Typebot's WhatsApp status webhook forwarding allows an authenticated workspace user to pivot the Typebot server into probing or interacting with internal network hosts, cloud metadata endpoints, or localhost services. The vulnerability exists in all Typebot versions prior to 3.17.0 and is triggered server-side whenever the public WhatsApp webhook receives a status payload, requiring no further interaction after the malicious URL is configured. No public exploit code or CISA KEV listing has been identified at time of analysis, but the attack is straightforward for any workspace member with WhatsApp integration configuration access.
Missing HMAC signature validation on Typebot's WhatsApp Cloud API webhook endpoint exposes versions 3.16.0 and prior to unauthenticated webhook spoofing by any network-accessible attacker. The endpoint POST /v1/workspaces/{workspaceId}/whatsapp/{credentialsId}/webhook ignores the x-hub-signature-256 header that Meta includes with every legitimate delivery, and because both path parameters are semi-public by design - appearing in web server access logs and Meta's webhook configuration dashboard - the attack surface is readily discoverable. Successful exploitation allows an attacker to trigger arbitrary bot automation flows, consume API resources, and abuse external service integrations using the workspace owner's stored credentials. No public exploit identified at time of analysis; vendor-released patch available in version 3.17.0.
Cross-typebot result data leakage in Typebot versions 3.15.2 and prior allows an authenticated user to read session variables, prior answers, and PII from a different typebot by supplying a foreign resultId to the startChat endpoint. The bot engine's findResult query omits typebotId from its database filter (CWE-639 IDOR), so any valid result record is returned regardless of which typebot owns it. If the attacker possesses a valid CUID2 resultId from another typebot and that typebot has rememberUser enabled, they can read the original user's names, emails, phone numbers, and other session variables exposed through matching variable names. No public exploit has been identified at time of analysis; vendor-released patch is available in version 3.16.0.
Typebot 3.15.2 exposes complete private bot definitions across all workspaces to any authenticated platform user via a broken authorization check in the getLinkedTypebots API endpoint, constituting a classic IDOR. The root cause is a JavaScript async/await misuse: Array.filter() is synchronous, so passing it an async callback causes every bot to pass the filter - the isReadTypebotForbidden predicate is never actually evaluated. Sensitive data leaked includes embedded credentials, API keys, PII stored as variables, webhook URLs, and integration configurations from any other user's private workspace bots. No public exploit has been identified at time of analysis and this CVE is not listed in CISA KEV, but the exposure of hardcoded secrets elevates practical risk significantly beyond the 6.5 CVSS score suggests.
Stored XSS in Typebot's JavaScript viewer embed (packages/embeds/js) allows any authenticated bot author - including free-tier users - to inject arbitrary JavaScript into a visitor's browser by setting a rich text bubble link URL to a javascript: URI. When a visitor clicks the malicious link within an embedded bot, the payload executes in the host page's origin (S:C scope change), enabling exfiltration of cookies and session tokens from the embedding third-party site. No public exploit code or active exploitation is confirmed at time of analysis; a vendor-released patch is available in v3.16.0.
Insecure Direct Object Reference (IDOR) in Typebot's getResultLogs API endpoint allows any authenticated user to read execution logs belonging to other workspaces by supplying an arbitrary victim resultId alongside their own authorized typebotId. The endpoint authorizes the caller by typebotId but fetches log records by resultId alone, skipping cross-ownership validation that all peer endpoints in the same router correctly enforce. Exploitation exposes sensitive runtime data including HTTP response bodies, AI model outputs, and webhook payloads. No public exploit or CISA KEV listing has been identified at time of analysis, but the straightforward nature of the IDOR - requiring only a valid session and a guessed or enumerated resultId - makes unauthorized data access realistic for any authenticated platform user.