Medium severity · published Sep 21, 2026
CVE-2026-63373
draw.io: OAuth CSRF via missing state validation on self-hosted deployments allows session token injection
4.2
CVSS
0.2%
EPSS
No
On KEV
Description
draw.io is a configurable diagramming and whiteboarding application. Prior to version 30.2.7, the OAuth callback handler in src/main/java/com/mxgraph/online/AbsAuth.java skips comparison of stateToken and cookieToken whenever IS_GAE is false, which affects self-hosted Docker and WAR deployments. An attacker can provide an authorization code for the attacker's cloud-storage identity and induce a victim to visit a callback URL, causing the victim's draw.io session to become authenticated as the attacker identity without a valid state binding. The shared handler affects Google Drive, OneDrive, GitHub, GitLab, and Dropbox integrations. The victim can then unknowingly perform cloud-storage actions under the attacker's identity, causing session integrity loss and misattribution, but the identity binding does not itself grant access to existing victim cloud files. This issue is fixed in version 30.2.7.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
Attack vector
Network
Complexity
High
Privileges
None
User interaction
Required
Confidentiality
Low
Integrity
Low
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.2% · higher than 4% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
DR
drawio · jgraph
< 30.2.7 · source: vendor
Affected product
DR
drawio
jgraph
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
6.1
CVE-2026-46642
draw.io: XSS via crafted cell label when opening a .drawio file
3.7
CVE-2026-63416
draw.io: Path traversal in ExportProxyServlet allows access to arbitrary backend endpoints