Skip to main content

draw.io CVE-2026-63416

| EUVDEUVD-2026-83988 LOW
Path Traversal (CWE-22)
2026-09-21 GitHub_M
3.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach unauthenticated draw.io export proxy
  2. Delivery
    Craft path-info with traversal segments
  3. Exploit
    Servlet resolves URL outside export base
  4. Execution
    Forward attacker headers and body to internal endpoint
  5. Impact
    Access admin/debug/config route or trigger internal action

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a self-hosted draw.io server (jgraph/drawio) running a version prior to 30.2.7 that exposes ExportProxyServlet and is configured to proxy to an internal export server. Exploitation is unauthenticated (PR:N) and needs no user interaction, but its impact is strictly bounded by the export service configuration: the attacker only gains value if the internal export backend actually hosts reachable administration, debugging, health, or configuration endpoints, or accepts state-changing actions - this is the AC:H limiting factor. The traversal is delivered via dot segments (literal or percent-encoded %2e/%2f/%5c, or backslash) in the request path info. Deployments without the export proxy feature, or where the backend exposes no sensitive routes, are not meaningfully exposed.

Impact

This is a low-to-moderate priority issue where the vendor's own CVSS score (3.7) is a reasonable reflection of real-world risk, though arguably conservative. The CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) correctly flags unauthenticated network reachability but assigns AC:H because impact is entirely contingent on the export service's configuration - the traversal only becomes meaningful if the internal export server actually exposes administration, debugging, health, or configuration endpoints reachable from the proxy. No EPSS score, KEV listing, or POC is present in the provided data, and no SSVC decision was supplied, so exploitation-probability signals are absent rather than conflicting. Two points warrant scrutiny: (1) the vendor scored S:U and I:N, but the description explicitly says the servlet 'forwards all request headers and the request body' to reach internal routes and can 'permit unintended internal actions' - that reads as a scope change into a separate internal backend with at least limited integrity impact, so I independently assess S:C/I:L (see assessed vectors). (2) The commit fixed this alongside a DNS-rebinding SSRF (GHSA-3v4h-8r2c-m8c5) and an OAuth CSRF hardening (GHSA-mcj5-3pww-7g49) in the same 30.2.7 release; those are distinct CVEs and should not be conflated with this traversal. Net: real but conditional - dangerous only for self-hosted draw.io servers whose internal export backend hosts sensitive endpoints.

Exploit ScenarioDerived

An unauthenticated attacker sends an HTTP request to a self-hosted draw.io server's export proxy with dot-segment traversal in the path info (e.g. encoded ../ sequences), causing the servlet to resolve a URL outside the configured export base and forward the attacker's headers and body to an internal export-server endpoint such as /admin, /debug, or /health. Depending on how the backend export service is configured, this can leak configuration or health data or trigger unintended internal actions. No public exploit code is identified in the provided data, and the AC:H rating reflects that success hinges on the specific backend endpoints exposed.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 21, 2026

Path traversal in the self-hosted draw.io server (jgraph/drawio) before version 30.2.7 allows unauthenticated remote attackers to redirect the ExportProxyServlet's internal proxy request to unintended routes on the configured export backend by supplying dot segments (literal or percent-encoded) in the request path. Because the servlet copies all request headers and the request body to the traversed destination, an attacker can reach administration, debugging, health, or configuration endpoints that the export server happens to expose, and may trigger unintended internal actions, though the practical impact is bounded by how that backend is configured. Exploitation requires a deployment that has the export proxy feature enabled and pointed at an internal export service; there is no public exploit identified at time of analysis, and no EPSS score was supplied, so the vendor's modest CVSS of 3.7 is a reasonable reflection of real-world risk.

RemediationAI

Upgrade the self-hosted draw.io server to version 30.2.7, the vendor-released patch that hardens ExportProxyServlet against path traversal (release tag v30.2.7, commit 650fbd742814f6502f78248dc2d8e2aaa5e42b5e, vendor advisory GHSA-3pq9-9hg4-ggfw). Until the upgrade can be applied, the most effective compensating control is to shrink the attack surface at the backend: remove or disable the export proxy configuration entirely if the export service is not required, since without it the vulnerable code path is unreachable (at the cost of losing the export feature). If the export proxy must stay, place the internal export server on a segmented network or bind it so that its administration, debugging, health and configuration endpoints are not reachable from the draw.io host, and require authentication on those routes; this limits traversal to the same meaninglessly-bounded exports the servlet is meant to serve, but requires infrastructure change rather than a code fix. A reverse proxy or WAF in front of the draw.io server can be configured to reject request paths containing dot segments or the encoded forms %2e, %2f, %5c and backslashes, mirroring the check added upstream - effective but bypassable if a downstream component re-decodes the path, so it should be layered with the segmentation above. Because the servlet forwards arbitrary request headers to the traversed destination, also consider stripping client-supplied internal headers at the front door. Note that version 30.2.7 additionally fixes a related DNS-rebinding SSRF in the image proxy (GHSA-3v4h-8r2c-m8c5), so the upgrade addresses more than this CVE alone.

Affected VersionsENISA

drawio < 30.2.7

Affected Packages

euvd drawio fix: 30.2.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic CWE-22 path traversal in Java servlet code, specifically src/main/java/com/mxgraph/online/ExportProxyServlet.java in jgraph/drawio. The servlet builds a proxyPath from request.getPathInfo() and appends it directly to the configured EXPORT_URL without rejecting '.' or '..' segments and without verifying that the normalized URL still resolves under the export base path. The upstream fix (commit 650fbd742814f6502f78248dc2d8e2aaa5e42b5e, released in 30.2.7) adds a containsTraversal() defence-in-depth check that rejects literal './..' segments, encoded variants (%2e, %2f, %5c) and backslashes, plus a normalization check that the resolved URL starts with the configured base. Also corrected in the same hunk is an off-by-one bounds check (serviceId > supportedServices.length changed to >=), which previously allowed an out-of-range service index. The servlet forwards all request headers and the request body to the resolved backend URL, so successful traversal additionally enables header injection against internal endpoints. The affected product is identified by CPE cpe:2.3:a:jgraph:drawio:*:*:*:*:*:*:*:*, and the same 30.2.7 release also fixed a DNS-rebinding SSRF in the image proxy (GHSA-3v4h-8r2c-m8c5) and enforced OAuth state/CSRF checks on non-GAE deployments (GHSA-mcj5-3pww-7g49), indicating a security-hardening sweep of the self-hosted server component rather than the desktop client.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.4 MEDIUM

Unauthenticated network reach (PR:N/AV:N); AC:H because impact depends on the backend's exposed endpoints; S:C and I:L because it forwards into a separate internal export server enabling unintended internal actions.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Sep 21, 2026 - 17:02 EUVD

DescriptionCVE.org

draw.io is a configurable diagramming and whiteboarding application. Prior to version 30.2.7, src/main/java/com/mxgraph/online/ExportProxyServlet.java uses request.getPathInfo() to build a proxyPath and appends it directly to EXPORT_URL without rejecting dot segments or confirming that the normalized destination remains under the configured export path. An unauthenticated request containing traversal segments can therefore address unintended routes on the internal export server, and the servlet forwards all request headers and the request body to that destination, allowing arbitrary header injection. Depending on the export service configuration, exploitation can expose administration, debugging, health, or configuration endpoints and can permit unintended internal actions. This issue is fixed in version 30.2.7.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
draw.io app is widely used, but this affects only self-hosted server deployments with the export proxy configured
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy