Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious .excalidraw file with HTML payload
-
DeliveryDeliver file to victim (link/share)
-
ExploitVictim imports file into Excalidraw
-
Executionrestore.ts renders customData.generationData.html
-
ImpactScript executes in page origin
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 | Exploitation requires a victim to import an attacker-supplied Excalidraw file (or otherwise load scene data) whose customData.generationData.html field carries an HTML/script payload processed by the restore.ts import handler in Excalidraw <=0.18.1. The key limiting factor is required user interaction (UI:P): the attacker cannot trigger execution without the victim opening/importing the crafted file; there is no authentication requirement (PR:N). Impact is confined to client-side script execution in the Excalidraw page origin, and no server-side or availability impact is indicated. |
| Impact | This is a low-severity, high-caveat issue. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) describes network-reachable, unauthenticated exploitation but requires user interaction (UI:P) - specifically a victim importing an attacker-crafted Excalidraw file - and the only impact is VI:L (limited integrity), with VC:N and VA:N, yielding VulDB's 2.1 score. My own read is slightly higher: DOM-based XSS executing in the origin can read/alter page content, so a C:L/I:L profile (CVSS 3.1 ~5.4-6.1 with S:C) is defensible, but this remains a low-to-medium real-world priority, not a critical one. SSVC data is not provided. Exploitation status: publicly available exploit code exists (VulDB states 'The exploit is now public'), but this is NOT active exploitation - there is no CISA KEV listing and no EPSS score in the input, so treat POC availability and in-the-wild exploitation as distinct signals. The vendor did not respond to disclosure, so no official patch is confirmed. Net: a genuine but low-impact client-side XSS gated on user-initiated file import; prioritize patching where Excalidraw processes untrusted imported files, but it is not an emergency. |
| Exploit ScenarioDerived | An attacker crafts a malicious .excalidraw file with a poisoned customData.generationData.html value and shares it (via a link, chat, or shared-workspace) with a victim. When the victim imports/opens the file in an affected Excalidraw instance (<=0.18.1), the restore.ts import handler renders the attacker HTML, executing script in the origin. A public exploit is available, lowering the skill barrier, though success depends on the victim performing the import action (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Cross-site scripting in Excalidraw 0.18.1 and earlier allows an attacker to embed an HTML/script payload in the customData.generationData.html field of a crafted scene file, which runs in the victim's browser origin when that file is imported through the restore.ts import handler. The issue is remotely reachable and unauthenticated (PR:N), but the attacker cannot trigger execution without the victim opening or importing the malicious file (UI:P), and publicly available exploit code exists with no indication of active exploitation in CISA KEV. Under the assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N the impact is confined to client-side script execution with low confidentiality and integrity effects, making this a low-severity, high-caveat issue rather than a critical one.
RemediationAI
No vendor-released patch identified at time of analysis: the vendor was contacted early about this disclosure and did not respond, and no fixed version appears in the provided references (VulDB entries https://vuldb.com/vuln/409318 and https://vuldb.com/vuln/409318/cti only). Until a patched release is confirmed upstream, treat every imported .excalidraw or scene JSON file as untrusted input: strip, escape, or reject the customData.generationData.html field before it reaches the restore/import routine, which removes the injection vector, with the trade-off that legitimate HTML content produced by generation/AI features will no longer render. Apply a strict Content-Security-Policy (for example script-src 'self' without unsafe-inline or unsafe-eval) on any page hosting Excalidraw; this blocks inline script execution from injected markup but may break legitimate embedded content and third-party integrations. Host Excalidraw on a separate origin or inside a sandboxed iframe without access to same-site cookies or session tokens to contain the blast radius of any successful execution, at the cost of clipboard, local storage and some collaboration features. If untrusted files are part of the normal workflow, disable the file-import feature entirely or restrict it to an allowlist of trusted sources, and monitor the upstream project for a patched release since no patched version has been independently confirmed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is a classic CWE-79 improper neutralization of input during web page generation, rooted in Excalidraw's scene-restore logic in packages/excalidraw/data/restore.ts, which is part of the Imported File Handler. Excalidraw is a TypeScript/React canvas whiteboard application that persists drawings as JSON scene files; scene elements can carry a customData object, and one of its subfields, generationData.html, is populated when elements originate from HTML-producing generation/AI features and is later rendered into the DOM without adequate sanitization or escaping by the restore routine. Because the import handler trusts the serialized scene JSON, an attacker who controls the file can inject markup that executes as script in the Excalidraw page origin, which is why the scope is assessed as changed (S:C) in the CVSS 3.1 assessment. The supplied CPE cpe:2.3:a:n/a:excalidraw:*:*:*:*:*:*:*:* is a wildcard with no version bounds, so it identifies the product generally rather than pinning a range; per the disclosure, versions up to and including 0.18.1 are affected. The CVSS 4.0 vector records AV:N/AC:L/AT:N/PR:N/UI:P with E:P (proof-of-concept exploit code publicly available), consistent with a low-severity, interaction-dependent XSS.
Know when Excalidraw 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
Remote unauthenticated but needs victim to import a crafted file (UI:R); DOM-XSS executes in origin (S:C) with limited confidentiality and integrity, no availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability was detected in Excalidraw up to 0.18.1. The impacted element is an unknown function of the file packages/excalidraw/data/restore.ts of the component Imported File Handler. Performing a manipulation of the argument customData.generationData.html results in cross site scripting. The attack is possible to be carried out remotely. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
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.
EUVD-2026-85919
GHSA-v2vq-3h6w-9r3c
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB