Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain collaborator access or publish importable typebot
-
DeliveryCraft Rating block with malicious customIcon.svg payload
-
ExploitVictim opens or previews typebot in builder
-
ExecutionSolid innerHTML injects unsanitized SVG under unsafe-inline CSP
-
PersistScript executes in builder.typebot.io authenticated origin
-
ImpactExfiltrate session tokens and pivot to workspace admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must hold a low-privileged authenticated identity in the target Typebot instance (collaborator on a shared workspace, or the ability to publish/share an importable typebot) - this is the PR:L requirement. The victim must perform a UI action (UI:R) by opening or previewing a maliciously crafted typebot inside the builder at builder.typebot.io. The payload must be placed in a Rating input block's customIcon.svg field, which the pre-3.16.0 import sanitizer did not flag as isUnsafe and which RatingButton renders through Solid's innerHTML. Exploitation further depends on the builder origin's CSP permitting 'unsafe-inline', which is the case on the hosted builder.typebot.io and on default self-hosted deployments. Limiting factors: not exploitable against published/embedded end-user-facing bots (the sink is in the builder preview path, not the runtime embed); not exploitable without an authenticated builder account or a victim who imports an attacker-supplied typebot; instances that have hardened CSP to remove 'unsafe-inline' break the script-execution step. |
| Impact | The CVSS 8.7 score with vector AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N reflects a realistic threat model: low-privileged authenticated user (PR:L, e.g., a collaborator or import recipient), user interaction required to open the malicious typebot (UI:R), and a changed scope (S:C) reaching the builder's authenticated session from a tenant-supplied payload. EPSS and KEV data were not provided in the input, so widespread exploitation probability cannot be quantified; no public exploit identified at time of analysis. The CVSS-described risk is credible - the commit diff confirms the sink, the missing sanitizer, and the CSP weakness - making this a real priority for any multi-tenant or shared-workspace Typebot deployment rather than a paper-only high-CVSS issue. UI:R and PR:L meaningfully limit drive-by mass exploitation but do not protect against insider/collaborator abuse or social-engineered imports. |
| Exploit ScenarioDerived | An attacker creates a malicious typebot JSON containing a Rating block whose customIcon.svg field embeds an SVG with an inline <script> or onload handler, then either publishes it for import or uses collaborator access to a shared workspace. When a victim builder user opens or previews the typebot, Solid's innerHTML directive injects the SVG into the builder.typebot.io DOM under the permissive CSP, executing the attacker's JavaScript with the victim's authenticated session and enabling session/cookie theft, API-token exfiltration, and privilege escalation across the victim's workspaces. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 22, 2026
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.
RemediationAI
Vendor-released patch: upgrade Typebot to version 3.16.0 or later, available at https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0; the fix commit 474ecbf46bc47a75265bada2599f12b2179de375 adds DOMPurify-based sanitizeSvgFragment and sanitizeHtmlFragment helpers and applies sanitizeSvgFragment to rating-block customIcon.svg and sanitizeHtmlFragment to file-block placeholder labels inside the import sanitizer. For self-hosted operators who cannot immediately upgrade, restrict who can import typebots or invite collaborators (disable open imports, gate collaborator add to verified workspace admins), and review existing typebots for rating blocks containing <script>, on*= handlers, or javascript: URIs in customIcon.svg before opening them in the builder - note this manual review does not scale and will miss obfuscated payloads. Tightening the builder CSP to remove 'unsafe-inline' is the strongest compensating control but will break legitimate inline-script features of the builder preview, so it should only be applied if you can validate the builder still functions; consult the GHSA-6m7c-xfhp-p9fh advisory for vendor guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
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 cpe:2.3:a:baptistearno:typebot.io) whose embed package uses SolidJS, where the RatingButton component passes the user-controlled customIcon.svg string directly to Solid's innerHTML directive - a sink equivalent to React's dangerouslySetInnerHTML. This is a textbook CWE-79 (Improper Neutralization of Input During Web Page Generation) where DOMPurify was already a project dependency and used in StreamingBubble.tsx, but was never invoked on the rating block's SVG payload. Compounding the sink exposure, the import sanitizer did not flag rating blocks as isUnsafe, and the builder origin's CSP permits 'unsafe-inline' scripts, which neutralizes the Web Worker sandbox that normally isolates Script blocks during preview rendering.
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:R/S:C/C:H/I:H/A:N
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Typebot is a chatbot builder tool. In versions 3.15.2 and prior, the RatingButton component in the embed package renders the user-controlled customIcon.svg field directly via Solid's innerHTML directive without any sanitization, even though DOMPurify is already a dependency and is used elsewhere in the codebase (e.g., StreamingBubble.tsx). Because rating blocks are not flagged as isUnsafe by the import sanitizer and the builder preview renders bots inline on the builder's own origin (builder.typebot.io) under a CSP permitting 'unsafe-inline', a malicious imported or collaborator-crafted typebot can execute arbitrary HTML/JS in the builder's authenticated context, bypassing the Web Worker sandbox that protects Script blocks during preview. This allows session hijacking and privilege escalation within the builder application. This issue has been fixed in version 3.16.0.
Blast Radius
ecosystem impact- 1 npm packages depend on @typebot.io/js (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.10.1.
Executive ViewAI
Typebot's SaaS chatbot builder platform (versions 3.15.2 and prior) contains a vulnerability enabling attackers to compromise authenticated builder accounts through shared or imported bot files, exposing organizations to account takeover and privilege escalation. Teams using Typebot for collaborative chatbot development face direct risk to credential compromise and unauthorized access to bot configurations and associated data.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict bot imports to internally-created or pre-approved sources, temporarily disable external collaboration features, implement enhanced monitoring of builder account activities for unauthorized access, require re-authentication for sensitive administrative operations, and educate users on risks of importing bots from untrusted third parties.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
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 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
Typebot's webhook resume endpoint exposes an insecure direct object reference flaw that allows any authenticated user ho
EUVD-2026-31466
GHSA-6m7c-xfhp-p9fh
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB