Skip to main content

Typebot CVE-2026-39966

MEDIUM
Incorrect Authorization (CWE-863)
2026-05-22 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register or obtain authenticated Typebot account
  2. Delivery
    Create bot with Typebot Link block referencing target bot ID
  3. Exploit
    Trigger getLinkedTypebots API call
  4. Execution
    Authorization filter silently bypassed due to async/filter bug
  5. Persist
    Receive full bot definition across workspace boundary
  6. Impact
    Extract embedded API keys, credentials, and PII from bot variables

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a valid authenticated Typebot session with at least low-privilege access (PR:L per CVSS vector - a regular user account with no special roles). The attacker must know or successfully enumerate the target bot's ID, which is referenced in a Typebot Link block within a bot they control. The vulnerability is triggered via the getLinkedTypebots API endpoint, which is part of the builder application's logic-block feature set. No special server-side configuration is required - the flawed code path is active by default in all 3.15.2 deployments. Exploitation is limited to read-only access (C:H/I:N/A:N); an attacker cannot modify or delete bots through this vector. The requirement for an authenticated account limits mass anonymous exploitation, but any registered Typebot user - including those on free tiers - meets the prerequisite.

Impact

The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N scores 6.5, reflecting network-reachable, low-complexity exploitation requiring only a low-privilege authenticated account with no user interaction. The high confidentiality impact rating is fully justified given that leaked bot definitions may contain hardcoded API keys, credentials, and PII - secrets that are frequently reusable across other systems. EPSS data was not provided in the source intelligence, so exploitation probability cannot be quantified from that signal. This CVE is not listed in CISA KEV, and no standalone public exploit code has been identified, making exploitation status 'no public exploit identified at time of analysis.' However, the low attack complexity - any authenticated user, no special tooling, just a crafted API call with a target bot ID - means exploitation is trivially automatable once a bot ID is known or enumerated. The gap between CVSS 6.5 and actual risk is meaningful: the real-world priority should be treated as higher than medium due to potential credential exposure. No conflicting signals between CVSS vector and description - both consistently indicate a low-privilege, network-accessible exploit path.

Exploit ScenarioDerived

An attacker with a free or low-privilege Typebot account creates a bot containing a Typebot Link block configured with the ID of a target private bot in another workspace - the bot ID may be obtained through enumeration, social engineering, or prior reconnaissance. The attacker then triggers the getLinkedTypebots API call, which returns the full bot definition including all embedded variables, webhook URLs, and integration API keys. Because no public exploit code has been identified, exploitation currently requires manual construction of the API call, but the low complexity makes scripted mass-enumeration straightforward for a motivated attacker.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 22, 2026

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.

RemediationAI

Upgrade Typebot to version 3.16.0 immediately, as confirmed by the vendor release at https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0 and the fixing commit b9530a089b43bfa6e79e3ff9cbfab921ce832f45. The patch surgically replaces the async-in-filter anti-pattern with a proper Promise.all() resolution loop, correctly enforcing workspace-level access controls on all bot lookups. If immediate upgrade is not possible, a compensating control is to restrict authenticated API access to the getLinkedTypebots endpoint at the network or reverse-proxy layer for untrusted user segments - note this will break legitimate cross-workspace bot linking functionality for affected users. Additionally, organizations should audit embedded bot variables in their Typebot workspaces for hardcoded credentials, API keys, and PII, and rotate any secrets that may have been accessible during the exposure window, since the vulnerability allowed silent read access with no logging of unauthorized access in the affected version.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in apps/builder/src/features/blocks/logic/typebotLink/api/getLinkedTypebots.ts within the Typebot builder application (CPE: cpe:2.3:a:baptistearno:typebot.io:*:*:*:*:*:*:*:*). CWE-863 (Incorrect Authorization) describes the root cause precisely: the authorization predicate exists in code but is never correctly evaluated. In JavaScript, Array.prototype.filter() executes its callback synchronously and treats the return value as a boolean. When the callback is declared async, it returns a Promise object - which is always truthy regardless of the resolved value - causing every element to pass the filter unconditionally. The original code used .filter(async (typebot) => !(await isReadTypebotForbidden(typebot, user))), which silently bypassed the await and let all bots through. The fix, confirmed in commit b9530a089b43bfa6e79e3ff9cbfab921ce832f45, replaces this with Promise.all() to properly resolve all async access checks before applying a synchronous filter, ensuring isReadTypebotForbidden is actually evaluated per bot. The Typebot Link block feature - which allows chaining bots - is the attack surface since it accepts arbitrary bot IDs submitted by the client.

Know when Typebot Io gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Primary rating from Vendor (GitHub_M) · only source for this CVE.

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionCVE.org

TypeBot is a chatbot builder tool. In versions 3.15.2, the getLinkedTypebots API endpoint returns full bot definitions to any authenticated user who references a target bot ID in a Typebot Link block, regardless of workspace ownership, leading to IDOR. The authorization check uses Array.filter() with an async callback - since filter() is synchronous, the callback always returns a truthy Promise, so the access control predicate is never actually evaluated. Any authenticated Typebot user can read the full definition of any other workspace's private bots, including: all conversation blocks and logic flow, variable values embedded in the bot (credentials, API keys, PII), webhook URLs and integration configurations. This issue has been fixed in version 3.16.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 92% exploitable
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Affected Products (CPE)CVE.org

cpe:2.3:a:baptistearno:typebot.io:*:*:*:*:*:*:*:*
CVE-2026-33712 CRITICAL
10.0 May 22

Server-Side Request Forgery in Typebot chatbot builder versions 3.15.2 and prior allows unauthenticated remote attackers

CVE-2026-48765 CRITICAL
9.9 Aug 11

Cross-workspace OAuth credential takeover in Typebot (open-source chatbot builder) before 3.17.0 lets a user holding onl

CVE-2026-48768 CRITICAL
9.3 Jun 17

Unauthenticated cross-tenant file upload in Typebot.io chatbot builder versions 3.16.1 and earlier allows anonymous visi

CVE-2026-47702 CRITICAL
9.1 Aug 11

Cleartext storage of API bearer tokens in the self-hosted open-source Typebot chatbot builder (version 3.16.1) lets anyo

CVE-2026-28445 HIGH
8.7 May 22

Stored cross-site scripting in Typebot chatbot builder versions 3.15.2 and prior allows a malicious imported or collabor

CVE-2026-39970 HIGH
8.5 May 22

Stored cross-site scripting in Typebot (chatbot builder) versions 3.15.2 and prior lets an authenticated user upload a c

CVE-2026-48763 HIGH
8.2 Aug 11

Unauthenticated S3 path traversal in Typebot versions prior to 3.17.0 allows any attacker to obtain presigned S3 PUT URL

CVE-2026-48764 HIGH
8.2 Jun 17

Server-side request forgery in Typebot chatbot builder before version 3.17.2 allows remote unauthenticated attackers to

CVE-2026-49213 HIGH
8.1 Jul 10

Server-side request forgery in Typebot before 3.17.2 lets an authenticated workspace editor or creator bypass the shared

CVE-2026-39965 HIGH
7.7 May 22

Server-side request forgery in Typebot versions 3.15.2 and prior allows authenticated users to bypass the validateHttpRe

CVE-2026-48766 HIGH
7.6 Aug 11

Credential exfiltration in Typebot prior to 3.17.0 allows a low-privilege guest workspace member to steal decrypted Open

CVE-2026-34207 HIGH
7.6 May 22

Server-side request forgery in Typebot chatbot builder versions prior to 3.16.0 allows authenticated users to bypass SSR

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy