Skip to main content

Typebot CVE-2026-39970

HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-05-22 GitHub_M
8.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate to Typebot account
  2. Delivery
    Craft malicious SVG with embedded JS
  3. Exploit
    Upload as profile picture
  4. Install
    Payload stored on app.typebot.io
  5. C2
    Victim views profile image
  6. Execute
    Script executes in app origin
  7. Impact
    Exfiltrate tokens / take over account

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

Requires an authenticated Typebot account (CVSS PR:L) with access to the profile picture upload form and the ability to upload a crafted SVG/XML file with embedded JavaScript to an instance running 3.15.2 or earlier. Exploitation additionally requires victim interaction (CVSS UI:P): a victim must load/view the stored malicious SVG served from the application domain (app.typebot.io) for the payload to fire. Limiting factors that reduce realistic risk: the attacker cannot be fully unauthenticated (an account is needed), the payload only triggers when another user renders the image, and instances on 3.16.0 or those that reject/sandbox SVG uploads are not exposed. Cross-user impact hinges on whether profile pictures are viewable by other users in the deployment.

Impact

The signals are consistent and point to a real but bounded risk. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N) indicates a network-reachable, low-complexity attack that requires the attacker to hold an account (PR:L) and requires a victim to view the malicious content (UI:P), yielding 8.5 (High). SSVC classifies exploitation as POC (not active), not automatable, with partial technical impact - consistent with the authentication-plus-victim-interaction requirement rather than mass unauthenticated scanning. EPSS is 0.05% and there is no KEV listing, so despite the high CVSS this is not evidence of widespread exploitation; the score is driven by same-origin script execution impact (account takeover), not ease of mass exploitation. Net: patch promptly for multi-tenant or self-hosted deployments because account takeover is serious, but this is not an internet-wormable emergency. One caveat to verify with the vendor: whether an uploaded avatar is viewable by other users determines whether this is cross-user stored XSS or self-XSS only - the advisory's 'public permanent link' framing implies cross-user reach but is not code-verified here.

Exploit ScenarioDerived

An attacker uses a Typebot account to upload a crafted SVG containing embedded JavaScript (e.g. an onload handler that reads document.cookie or session tokens) as their profile picture. When a victim such as an admin or workspace member views the attacker's avatar, the SVG is served from app.typebot.io and its script runs in the victim's session, exfiltrating tokens to an attacker-controlled server and enabling account takeover. POC-level exploitation is documented per SSVC.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 – Jul 23, 2026

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.

RemediationAI

Upgrade to Typebot 3.16.0 or later (Vendor-released patch: v3.16.0), which addresses SVG upload handling; self-hosters should also invalidate existing sessions/tokens as a precaution given the account-takeover impact. Until upgrade, apply compensating controls on the upload path: reject SVG/XML content types on the profile-picture endpoint (trade-off: users lose SVG avatars, generally acceptable); or serve all user-uploaded files from a separate sandboxed origin/CDN with Content-Disposition: attachment and a restrictive Content-Security-Policy so SVGs cannot execute script in the app.typebot.io origin (trade-off: infrastructure change, may affect inline rendering); and/or re-encode uploaded images to a raster format (PNG/JPEG) to strip embedded scripts. See advisory GHSA-jj87-c343-26vp (https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-jj87-c343-26vp) and the v3.16.0 release notes (https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0).

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 (repository baptisteArno/typebot.io) whose hosted instance runs at app.typebot.io. The root cause is CWE-79 (improper neutralization of input during web page generation), specifically stored XSS. SVG is an XML-based image format that can legally embed <script> elements and event-handler attributes; when a web application accepts SVG uploads and later serves them with an image/svg+xml content type on its own origin (rather than sandboxing them or re-encoding to raster), the browser parses and executes the embedded script in that origin's context. Here the profile-picture upload path neither restricts SVG/XML uploads nor sanitizes their contents, and the stored file is rendered directly from the application domain, giving the payload same-origin execution against app.typebot.io.

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 8.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.7 HIGH

Authenticated upload (PR:L) with a victim who must view the stored SVG (UI:R); script runs in the app origin affecting other users so scope changes (S:C), with high confidentiality/integrity impact and no availability effect.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
CVSS changed
Jul 23, 2026 - 16:22 NVD
8.5 (HIGH)
CVE Published
May 22, 2026 - 17:55 cve.org
HIGH 8.5
CVE Published
May 22, 2026 - 17:55 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

TypeBot is a chatbot builder tool. Versions 3.15.2 and prior contain a critical stored XSS vulnerability in the app.typebot.io profile picture upload form. The application fails to sanitize or restrict SVG/XML-based uploads and directly renders them when accessed through the domain. By uploading a crafted malicious SVG file containing embedded JavaScript, an attacker will execute arbitrary JavaScript code. This vulnerability directly enables stored XSS exploitation because the payload is persistently stored on your infrastructure (app.typebot.io) and accessible from a public-facing, permanent link. Stored XSS via malicious SVG uploads to app.typebot.io allows attackers to execute arbitrary JavaScript in victims' browsers, enabling session/token theft, account takeover, and exfiltration of sensitive user data. This issue has been fixed in version 3.16.0.

Executive ViewAI

Why It Matters

Typebot (versions 3.15.2 and earlier) contains a stored cross-site scripting vulnerability that allows users to upload malicious SVG files triggering JavaScript execution when viewed publicly, creating risk of session hijacking and account takeover. Publicly available exploit code exists, though no confirmed active exploitation has been identified.

Business Impact: High
Compensating Controls

Disable SVG file uploads and restrict file types to PNG/JPEG formats; implement Content Security Policy headers with strict script-src restrictions; disable public-link sharing for user-generated content until patch is available; audit existing uploaded SVG files for malicious payloads; establish monitoring for unusual file upload patterns or access anomalies.

Threat Intelligence Overview

EPSS Score
0.0%
Top 85% exploitable
Prevalence
Low
niche open-source chatbot builder, limited enterprise deployment footprint
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 HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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-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

CVE-2026-47704 HIGH
7.1 Aug 11

Typebot's webhook resume endpoint exposes an insecure direct object reference flaw that allows any authenticated user ho

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