CVE Catalog

CVE-2026-76898

HighCVSS 7.7
Published: Translated: NVD NIST

Summary

In draw.io prior to 30.3.8, Utils.sanitizeUrl() checks IPv6 Unique Local Addresses by comparing text prefixes fc00:: and fd00::, but the JDK returns the expanded address form, so the fc00::/7 range, including the AWS metadata range fd00:ec2::/32, is not blocked. An unauthenticated request to /embed2.js?fetch= can make the server fetch an IPv6 ULA internal resource and reflect the response to the requester.

Risk Assessment

An unauthenticated attacker can disclose cloud metadata credentials or data from other IPv6-reachable internal services, leading to information leakage.

Recommendation

Update draw.io to version 30.3.8 or later. Until patched, restrict access to the /embed2.js endpoint and consider blocking traffic to IPv6 ULA ranges.

Other vulnerabilities in draw.io

See all
Original NVD description (English source)

draw.io is a configurable diagramming and whiteboarding application. Prior to version 30.3.8, src/main/java/com/mxgraph/online/Utils.java checks IPv6 Unique Local Addresses in Utils.sanitizeUrl() by comparing the text prefixes fc00:: and fd00::, but the JDK returns the expanded address form, so the fc00::/7 range, including the AWS metadata range fd00:ec2::/32, is not blocked. An unauthenticated request to /embed2.js?fetch= can therefore make src/main/java/com/mxgraph/online/EmbedServlet2.java fetch an IPv6 ULA internal resource and reflect the response to the requester. Utils.validatedAddress() uses the same private-address check for the separate ProxyServlet path, which requires ENABLE_DRAWIO_PROXY=1. The primary /embed2.js path requires no proxy feature flag or DNS rebinding, and it can disclose cloud metadata credentials or data from other IPv6-reachable internal services. This issue is fixed in version 30.3.8.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS