Skip to main content

Excalidraw CVE-2026-97224

| EUVDEUVD-2026-85919 LOW
Cross-site Scripting (XSS) (CWE-79)
2026-09-24 VulDB GHSA-v2vq-3h6w-9r3c
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious .excalidraw file with HTML payload
  2. Delivery
    Deliver file to victim (link/share)
  3. Exploit
    Victim imports file into Excalidraw
  4. Execution
    restore.ts renders customData.generationData.html
  5. Impact
    Script 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).

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

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

excalidraw 0.18.0
excalidraw 0.18.1

Affected Packages

euvd excalidraw no fix

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

Vendor (VulDB) PRIMARY 2.1 MEDIUM
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
vuln.today AI 6.1 MEDIUM

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.

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

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

2
Severity Changed
Sep 24, 2026 - 15:22 NVD
MEDIUM LOW
CVSS changed
Sep 24, 2026 - 15:22 NVD
5.3 (MEDIUM) 2.1 (LOW)

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

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Medium
very popular open-source whiteboard, widely embedded but not ubiquitous infrastructure
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 LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
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.

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