Typebot CVE-2026-28444
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege Typebot account
-
DeliveryObtain or enumerate victim resultId via webhook/log leakage
-
ExploitCraft GET request to getResultLogs with own typebotId and victim resultId
-
ExecutionServer authorizes against attacker typebotId, fetches log by resultId alone
-
ImpactReceive execution log containing HTTP responses, AI outputs, webhook payloads
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | The attacker must be authenticated to the Typebot platform with at least a low-privilege account (CVSS PR:L confirmed). The vulnerability is triggered by calling the getResultLogs API endpoint with any valid resultId from any workspace; the attacker needs their own typebotId (from any bot they control) to pass the authorization check. The victim's resultId must be known or enumerable - Typebot result IDs are typically UUIDs, so bulk enumeration is impractical but leakage via webhooks, browser history, or other API responses is plausible. No special server configuration or non-default feature flag is required - the vulnerable code path is active in all default Typebot deployments running an affected version. Exploitation is limited to confidentiality impact only (read-only); no write or delete operations are exposed through this flaw. |
| Impact | CVSS 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) correctly reflects a network-reachable, low-complexity, authenticated attack with high confidentiality impact and no integrity or availability effect. The PR:L vector is the primary limiting factor - the attacker must already hold a valid Typebot account, which restricts the exposed population to registered or compromised platform users. Attack complexity is genuinely low once a resultId is obtained; UUIDs used as primary keys may be guessable or leakable through other API interactions (e.g., webhook logs, URL parameters). No EPSS data was provided; given the absence of KEV listing and no identified POC, opportunistic mass exploitation appears unlikely at this time, but targeted abuse by malicious tenants on shared Typebot instances is a realistic concern. The SSVC technical impact is rated partial (confidentiality only, scoped to one result per request), but webhook payloads and AI outputs can contain PII, credentials, or business-sensitive data, elevating real-world severity above the raw CVSS score suggests. The oversight nature of the bug - confirmed by the fact that all peer endpoints already perform the correct check - means it is likely straightforward to exploit without specialized knowledge. |
| Exploit ScenarioDerived | An attacker with a legitimate low-privilege Typebot account sends a GET request to the getResultLogs endpoint, substituting their own valid typebotId for authorization while supplying a victim's resultId (obtained via enumeration, intercepted webhook, or leaked URL). The server authorizes the request against the attacker's typebot, fetches the log record by resultId alone, and returns the full execution log - potentially including webhook response bodies, AI model outputs with customer data, and internal integration payloads - without any cross-ownership check. No public proof-of-concept code has been identified, but the attack requires only standard HTTP tooling and knowledge of the API contract. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 22, 2026
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.
RemediationAI
Upgrade Typebot to v3.16.0 or later, which contains the validated fix per the GitHub release at https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0 and the patching commit at https://github.com/baptisteArno/typebot.io/commit/d82b2d47c86ae614a08d4073c669ca64442faff2. The security advisory is published at https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-c63p-mqx5-75r7. If an immediate upgrade is not feasible, network-layer mitigations are limited because the vulnerability resides in authenticated API logic; however, operators can restrict API access to trusted IP ranges or require VPN for builder access to limit the pool of authenticated users who could exploit the flaw. Disabling cross-workspace result log sharing or temporarily restricting the /api/typebots/{id}/results/{resultId}/logs endpoint via a reverse proxy rule are short-term options, though the latter may break legitimate logging workflows. Patch application is the only complete remediation.
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
Typebot is an open-source chatbot builder (cpe:2.3:a:baptistearno:typebot.io:*:*:*:*:*:*:*:*) with a tRPC/Next.js API layer. The vulnerable handler, handleGetResultLogs in apps/builder/src/features/results/api/handleGetResultLogs.ts, performs a Prisma database query using only the caller-supplied resultId as the lookup key, without joining or filtering on typebotId. CWE-639 (Authorization Through User-Controlled Key) precisely describes this root cause: authorization decisions rely on a user-controlled identifier (typebotId) that is never bound to the resource being fetched (resultId), creating a horizontal privilege escalation path. The fix, visible in commit d82b2d47c86ae614a08d4073c669ca64442faff2, changes the Prisma where clause from a flat resultId lookup to a compound condition requiring both id: resultId and typebotId: typebotId to match simultaneously, bringing the handler in line with all sibling endpoints.
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
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
DescriptionCVE.org
Typebot is a chatbot builder tool. In versions 3.15.2 and prior, the getResultLogs API endpoint authorizes the caller against the provided typebotId but fetches logs solely by resultId without verifying that the result belongs to the authorized typebot, leading to IDOR. An authenticated attacker can supply their own typebotId alongside any victim's resultId to read execution logs from other workspaces, leaking sensitive data including HTTP response bodies, AI model outputs, and webhook payloads. Every other result-scoped endpoint in the same router properly validates that the resultId belongs to the authorized typebotId. This confirms the missing check is an oversight, not a design choice. This issue has been fixed in version 3.15.2.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
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
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB