Description
draw.io is a configurable diagramming and whiteboarding application. Prior to version 30.2.5, opening or importing a crafted .drawio file can execute attacker-controlled JavaScript in the draw.io origin when selected cells are processed by TextFormatPanel.addFont() in src/main/webapp/js/grapheditor/Format.js. An HTML sibling cell keeps the formatted-label path enabled while an editable=0 plain-text sibling is excluded from the merged selection style but remains in the iteration set. graph.cellRenderer.getLabelValue() returns that plain-text label without HTML encoding, and mxUtils.canConvertHtmlToSvg() parses it as HTML, bypassing the earlier CVE-2026-46642 remediation. Successful exploitation can expose diagram data, browser storage, non-HttpOnly cookies, and same-origin actions available to the victim. This issue is fixed in version 30.2.5.
Published: 2026-09-21
Score: 6.1 Medium
EPSS: n/a
KEV: No
Impact: Stored XSS
Action: Patch Now
AI Analysis

Impact

A crafted .drawio file can cause attacker‑controlled JavaScript to run in the draw.io origin when cells are processed by TextFormatPanel.addFont(). The flaw bypasses earlier remediation by exploiting a sibling plain‑text cell that is not properly escaped. Successful exploitation gives an attacker access to diagram contents, browser storage, non‑HttpOnly cookies, and same‑origin actions. The weakness resides in improper string handling (CWE‑116) and cross‑site scripting (CWE‑79).

Affected Systems

The vulnerability affects all versions of jgraph:drawio older than 30.2.5. Users must upgrade to version 30.2.5 or later to eliminate the flaw.

Risk and Exploitability

The CVSS score of 6.1 indicates moderate risk. EPSS data is unavailable, and the vulnerability is not listed in the KEV catalog. The attack vector is inferred to be a user‑initiated file import or opening of a malicious diagram. An attacker must convince a victim to load a crafted file, after which the script runs with the same privileges as the web app. Due to the lack of a publicly known widespread exploitation and the requirement for user interaction, the exploitation probability is considered low to moderate.

Generated by OpenCVE AI on September 21, 2026 at 17:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update jgraph drawio to version 30.2.5 or later.
  • If an update is not possible immediately, block the import of untrusted .drawio files by disabling the import feature or using a sandboxed viewer.
  • Implement browser security controls such as a Content Security Policy that restricts inline script execution from the draw.io origin.

Generated by OpenCVE AI on September 21, 2026 at 17:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 21 Sep 2026 17:45:00 +0000

Type Values Removed Values Added
First Time appeared Jgraph
Jgraph drawio
Vendors & Products Jgraph
Jgraph drawio

Mon, 21 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Description draw.io is a configurable diagramming and whiteboarding application. Prior to version 30.2.5, opening or importing a crafted .drawio file can execute attacker-controlled JavaScript in the draw.io origin when selected cells are processed by TextFormatPanel.addFont() in src/main/webapp/js/grapheditor/Format.js. An HTML sibling cell keeps the formatted-label path enabled while an editable=0 plain-text sibling is excluded from the merged selection style but remains in the iteration set. graph.cellRenderer.getLabelValue() returns that plain-text label without HTML encoding, and mxUtils.canConvertHtmlToSvg() parses it as HTML, bypassing the earlier CVE-2026-46642 remediation. Successful exploitation can expose diagram data, browser storage, non-HttpOnly cookies, and same-origin actions available to the victim. This issue is fixed in version 30.2.5.
Title draw.io: Stored XSS on file open via editable=0 sibling cell — patch bypass of CVE-2026-46642
Weaknesses CWE-116
CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-21T16:15:30.398Z

Reserved: 2026-06-30T20:21:25.813Z

Link: CVE-2026-58504

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-21T17:17:36.077

Modified: 2026-09-21T17:17:36.077

Link: CVE-2026-58504

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T17:30:18Z

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output

  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')