Description
draw.io Desktop is the official Electron build of draw.io. Prior to 31.4.4, draw.io Desktop is vulnerable to arbitrary local-file disclosure through the Electron main process's read-side IPC handlers. The readFile, getFileDrafts, getBkpFile, fileStat, isFileWritable, checkFileExists, and watchFile actions operate on a renderer-chosen filesystem path with no blessed-path (assertWritablePath) authorization. The only gates are validateSender — a URL-prefix origin check — plus, for readFile alone, a content "sniff" and a lexical appBaseDir prefix block. The write-side handlers (saveFile, writeFile, saveDraft, deleteFile) are all protected by assertWritablePath; the read side is not. The result is a read/write authorization asymmetry: any frame executing in the app's file:// origin can read the contents of local files that the same origin is explicitly forbidden to write. This issue is fixed in version 31.4.4.
Published: 2026-10-22
Score: 5.6 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Local File Disclosure
Action: Patch
AI Analysis

Impact

draw.io Desktop's Electron main process contains IPC handlers that permit reading arbitrary local files. The readFile, getFileDrafts, getBkpFile, fileStat, isFileWritable, checkFileExists, and watchFile actions process renderer‑provided file paths without a blessed‑path gate. A sender validation only checks the URL prefix, while readFile has an additional content sniff and a lexical appBaseDir prefix block, but these are insufficient. An attacker who controls a renderer frame in the app’s file:// origin can therefore read files that the same origin is forbidden to write, leading to confidential data exposure.

Affected Systems

The vulnerability affects the draw.io Desktop application (Electron build) from jgraph, on all versions prior to 31.4.4. The affected product is the official desktop client and the main process IPC handlers are unprotected for read operations.

Risk and Exploitability

The CVSS score is 5.6, classifying the flaw as medium severity. No EPSS score is available, and the vulnerability is not listed in the CISA KEV catalog. The attack likely requires an attacker to execute code within the desktop application's file:// origin, such as by loading a malicious local HTML file or exploiting an existing renderer process. Once the attacker controls the renderer context, they can invoke the vulnerable read‑side IPC methods to retrieve any files accessible to that origin. Given the lack of a blessed‑path check, the risk of sensitive local‑file disclosure remains significant for users running the application with untrusted content.

Generated by OpenCVE AI on October 22, 2026 at 17:33 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade draw.io Desktop to version 31.4.4 or newer.
  • If an immediate upgrade is not possible, restrict renderer processes to trusted origins and avoid loading arbitrary local content via file://.
  • Monitor the application for unexpected readFile IPC calls or unauthorized file accesses and enforce file‑system monitoring to detect potential exploitation.

Generated by OpenCVE AI on October 22, 2026 at 17:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 31 Oct 2026 22:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 23 Oct 2026 00:45:00 +0000

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

Thu, 22 Oct 2026 16:45:00 +0000

Type Values Removed Values Added
Description draw.io Desktop is the official Electron build of draw.io. Prior to 31.4.4, draw.io Desktop is vulnerable to arbitrary local-file disclosure through the Electron main process's read-side IPC handlers. The readFile, getFileDrafts, getBkpFile, fileStat, isFileWritable, checkFileExists, and watchFile actions operate on a renderer-chosen filesystem path with no blessed-path (assertWritablePath) authorization. The only gates are validateSender — a URL-prefix origin check — plus, for readFile alone, a content "sniff" and a lexical appBaseDir prefix block. The write-side handlers (saveFile, writeFile, saveDraft, deleteFile) are all protected by assertWritablePath; the read side is not. The result is a read/write authorization asymmetry: any frame executing in the app's file:// origin can read the contents of local files that the same origin is explicitly forbidden to write. This issue is fixed in version 31.4.4.
Title draw.io Desktop: Arbitrary local-file read via read-side IPC (no blessed-path gate)
Weaknesses CWE-200
CWE-22
References
Metrics cvssV4_0

{'score': 5.6, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Jgraph Drawio-desktop
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T19:22:29.193Z

Reserved: 2026-10-21T20:34:25.599Z

Link: CVE-2026-114606

cve-icon Vulnrichment

Updated: 2026-10-30T19:22:04.594Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-22T17:16:58.413

Modified: 2026-10-30T20:17:00.523

Link: CVE-2026-114606

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T21:19:03Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')