Medium severity · published Jun 10, 2026
CVE-2026-46642
draw.io: XSS via crafted cell label when opening a .drawio file
6.1
CVSS
0.2%
EPSS
No
On KEV
Description
draw.io is a configurable diagramming and whiteboarding application. Prior to version 29.7.12, a crafted .drawio file can execute arbitrary JavaScript in the editor's origin when the file is opened. The vulnerability is not in the label sanitizer (which works correctly on the rendering path) but in a feature-detection routine in the Text Format panel that reads the raw cell label and assigns it to a detached element's innerHTML without sanitization. Browsers fire onerror for failed image loads even on detached elements, so an <img src=x onerror=...> payload in any cell label triggers script execution as soon as the cell is selected — which import does automatically. This issue has been patched in version 29.7.12.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
Low
Integrity
Low
Availability
None
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.2% · higher than 13% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
DR
drawio · jgraph
< 29.7.12 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-46642
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-46642
Release Notes
https://github.com/jgraph/drawio/releases/tag/v29.7.12
Exploit
https://github.com/jgraph/drawio/security/advisories/GHSA-fqhg-287p-c6vf
More from drawio
7.7
CVE-2026-76898
draw.io: Unauthenticated SSRF via IPv6 ULA blocklist bypass in /embed2.js
6.8
CVE-2026-63334
draw.io: SSRF via DNS rebinding in ProxyServlet bypasses private IP blocklist
6.1
CVE-2026-58504
draw.io: Stored XSS on file open via editable=0 sibling cell — patch bypass of CVE-2026-46642
4.2
CVE-2026-63373
draw.io: OAuth CSRF via missing state validation on self-hosted deployments allows session token injection
3.7
CVE-2026-63416
draw.io: Path traversal in ExportProxyServlet allows access to arbitrary backend endpoints
