CVE-2026-85061 json
MapLibre GL JS: XSS Sanitizer Bypass in DOM.sanitize() via Live NamedNodeMap Removal Skip
published 2mo ago modified 15h ago also EUVD-2026-70734 , GHSA-jrc7-96c5-q579
- cvss
- 10.0
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 44%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- npm maplibre-gl 6.4.1
Is CVE-2026-85061 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- total
- Assessed
- 2mo ago
Exploit prediction
0.52% chance of exploitation in the next 30 days, higher than 44% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N |
| GitHub | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | maplibre-gl | <6.4.1 |
6.4.1 |
Affected products
- maplibre maplibre-gl-js
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/maplibre/maplibre-gl-js/pull/8189
web
-
github.com
/maplibre/maplibre-gl-js/commit/1da69f3cd913a39fa948708e01478663bf48bc27
web
-
github.com
/maplibre/maplibre-gl-js/security/advisories/GHSA-jrc7-96c5-q579
web, advisory
-
github.com
/maplibre/maplibre-gl-js/releases/tag/v6.4.1
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-85061
advisory
-
github.com
/maplibre/maplibre-gl-js
package
Sources
- CVE List CVE-2026-85061
- GitHub Advisory GHSA-jrc7-96c5-q579
- NVD CVE-2026-85061
- Maintainer advisory GHSA-jrc7-96c5-q579
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of maplibre/maplibre-gl-js published their own advisory on GitHub. Reviewed sources take precedence over it.