---
id: "CVE-2026-115762"
kind: "vulnerability"
aliases: ["CVE-2026-115762"]
title: "draw.io: malicious GraphML import enables prototype pollution and script execution"
severity: "medium"
cvss: 6.1
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["diagramming", "draw.io", "package", "self-hosted"]
not_affected_if: ["no-graphml-import", "version-31.1.5-or-later"]
published_at: "2026-11-04T21:17:52+00:00"
first_seen_at: "2026-11-04T21:49:18+00:00"
updated_at: "2026-11-04T21:51:18+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-115762", "first_seen_at": "2026-11-04T21:49:18+00:00"}]
exploit_sources: []
---

# draw.io: malicious GraphML import enables prototype pollution and script execution

draw.io, a diagramming web app, fails to block attacker-controlled keys in GraphML files, so importing a crafted file pollutes JavaScript object prototypes. In the advisory's chain, opening the editor in Trello mode and using the Trello integration lets the polluted state run script in the draw.io origin.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the draw.io version in use; the sources do not say how to find it in a self-hosted deployment, so unknown
- Look for any self-hosted or embedded draw.io build below `31.1.5`

## Fix

- draw.io: upgrade to `31.1.5` or later

## Timeline

- 2026-11-04T21:49:18+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-115762

## Documents

- [advisory] Vendor advisory: github.com https://github.com/jgraph/drawio/security/advisories/GHSA-vvpv-f297-2ghp
- [fix] Patch: github.com https://github.com/jgraph/drawio/commit/3b4210678207f3880888969ee53c9fe4580104ab

## From the sources

draw.io is a configurable diagramming and whiteboarding application. Prior to 31.1.5, the GraphML decoder contains a prototype-pollution vulnerability. Attacker-controlled GraphML reference keys can address inherited object properties, including prototype objects, and the decoder can then assign attacker-controlled attributes to those objects. Importing a malicious GraphML file can trigger client-side prototype pollution. In the advisory-supported cross-site scripting chain, the editor is opened in Trello mode and the user invokes the Trello integration after the import, allowing the polluted state to execute script in the draw.io origin; an existing Trello connection is not required. This vulnerability is fixed in 31.1.5.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
