Vulnerability · Published Sep 3, 2026 · Assigned by GitHub_M
CVE-2026-85061MapLibre GL JS: XSS Sanitizer Bypass in DOM.sanitize() via Live NamedNodeMap Removal Skip
Critical 10.0
In plain English
A critical-severity cross-site scripting in maplibre-gl-js from maplibre. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 44% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
MapLibre GL JS is an interactive vector tile map library for web browsers. Prior to 6.4.1, DOM.sanitize() in src/util/dom.ts iterates elem.attributes as a live NamedNodeMap while removeAttributes() removes attributes from the same collection, shifting indexes and skipping an adjacent dangerous attribute. An attacker who controls untrusted third-party style attribution strings or user-supplied custom attributions can supply consecutive dangerous attributes, causing an attribute such as onload or ontoggle to survive sanitization and execute when the attribution control inserts the content into innerHTML. A victim must render the affected map content for the script to execute. This issue is fixed in version 6.4.1.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| npm | maplibre-gl | 6.4.1 | GHSA-jrc7-96c5-q579 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| maplibre | maplibre-gl-js | < 6.4.1 |
Weakness: CWE-79 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
References
- https://github.com/maplibre/maplibre-gl-js/security/advisories/GHSA-jrc7-96c5-q579 x_refsource_CONFIRM
- https://github.com/maplibre/maplibre-gl-js/pull/8189 x_refsource_MISC
- https://github.com/maplibre/maplibre-gl-js/commit/1da69f3cd913a39fa948708e01478663bf48bc27 x_refsource_MISC
- https://github.com/maplibre/maplibre-gl-js/releases/tag/v6.4.1 x_refsource_MISC