{"id":"CVE-2026-114606","kind":"vulnerability","aliases":["CVE-2026-114606"],"related":[],"title":"draw.io Desktop: renderer can read arbitrary local files through IPC","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.","summary":"draw.io Desktop's Electron main process exposes several read-side IPC handlers that accept any filesystem path chosen by the renderer, with no authorization check. A frame running in the app's file:// origin can therefore read local files the app would never allow it to write.","severity":"medium","cvss":5.6,"epss":0.00193,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["desktop","draw.io-desktop","electron","package","workstations"],"not_affected_if":["fixed-version","managed-hosting","web-only-use"],"how_to_check":"- Run `draw.io --version` or check the installed draw.io Desktop version in the About dialog; versions below `31.4.4` are affected.\n- Confirm whether untrusted web content or external documents can be opened inside the app's renderer.","fix":"- Upgrade draw.io Desktop to `31.4.4` or later.","status":"open","published_at":"2026-10-22T17:16:58+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","triaged_at":"2026-10-25T04:10:32+00:00","updated_at":"2026-10-25T04:10:32+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T04:10:32Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade draw.io Desktop to `31.4.4` or later.","reach":"local","title":"draw.io Desktop: renderer can read arbitrary local files through IPC","impact":"medium","summary":"draw.io Desktop's Electron main process exposes several read-side IPC handlers that accept any filesystem path chosen by the renderer, with no authorization check. A frame running in the app's file:// origin can therefore read local files the app would never allow it to write.","category":"package","nicknames":[],"who_cares":["draw.io-desktop","electron","desktop","workstations"],"confidence":0.6,"needs_auth":"unknown","worst_case":"local files readable by a frame in the app origin","analyst_note":"","how_to_check":"- Run `draw.io --version` or check the installed draw.io Desktop version in the About dialog; versions below `31.4.4` are affected.\n- Confirm whether untrusted web content or external documents can be opened inside the app's renderer.","needs_analyst":false,"not_affected_if":["web-only-use","managed-hosting","fixed-version"],"who_is_affected":"Teams that install draw.io Desktop on workstations or shared machines are exposed, since the flaw needs a frame running in the app's origin to read local files. Users who only use the web app at diagrams.net or a managed hosted instance are not affected by this desktop build.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000611,"input_tokens":3573,"output_tokens":507,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-114606':13A,16A '-2026':12A,15A '31.4.4':81C,208C 'accept':37B 'action':112C 'allow':66B 'alon':142C 'app':54B,63B,183C 'appbasedir':149C 'arbitrari':6A,87C 'assertwritablepath':126C,165C 'asymmetri':177C 'author':47B,127C,176C 'bless':124C 'blessed-path':123C 'block':151C 'build':76C 'check':48B,138C 'checkfileexist':109C 'chosen':41B,118C 'content':144C,189C 'cve':11A,14A 'deletefil':160C 'desktop':2A,17B,19B,24B,71C,83C 'disclosur':91C 'draw.io':1A,18B,23B,70C,78C,82C 'electron':20B,26B,75C,94C 'execut':180C 'explicit':198C 'expos':29B 'file':8A,61B,90C,192C 'filestat':107C 'filesystem':39B,119C 'fix':205C 'forbidden':199C 'frame':50B,179C 'gate':130C 'getbkpfil':106C 'getfiledraft':105C 'handler':35B,102C,156C 'ipc':10A,34B,101C 'isfilewrit':108C 'issu':203C 'lexic':148C 'local':7A,60B,89C,191C 'local-fil':88C 'main':27B,95C 'never':65B 'offici':74C 'oper':113C 'origin':56B,137C,185C,196C 'packag':21B 'path':40B,120C,125C 'plus':139C 'prefix':136C,150C 'prior':79C 'process':28B,96C 'protect':163C 'read':5A,32B,59B,99C,167C,187C 'read-sid':31B,98C 'read/write':175C 'readfil':104C,141C 'render':3A,44B,117C 'renderer-chosen':116C 'result':172C 'run':51B 'savedraft':159C 'savefil':157C 'sever':30B 'side':33B,100C,155C,168C 'sniff':145C 'therefor':58B 'url':135C 'url-prefix':134C 'validatesend':132C 'version':207C 'vulner':85C 'watchfil':111C 'workstat':22B 'would':64B 'write':69B,154C,201C 'write-sid':153C 'writefil':158C","nicknames":[],"mitigations":[],"who_affected":"Teams that install draw.io Desktop on workstations or shared machines are exposed, since the flaw needs a frame running in the app's origin to read local files. Users who only use the web app at diagrams.net or a managed hosted instance are not affected by this desktop build.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T17:16:58+00:00","kev":null,"cvss_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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114606","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114606","severity":null,"published_at":"2026-10-22T17:16:58+00:00","modified_at":"2026-10-22T17:29:28+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","fetched_at":"2026-10-23T22:29:02+00:00","note":null},{"source":"epss","external_id":"CVE-2026-114606","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-114606","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-24T07:15:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}