---
title: "CVE-2026-85061: MapLibre GL JS: XSS Sanitizer Bypass in DOM.sanitize() via Live NamedNodeMap Removal Skip"
url: https://erroneo.us/security/cve/CVE-2026-85061/
description: "CVE-2026-85061 (maplibre-gl (npm)): MapLibre GL JS is an interactive vector tile map library for web browsers. Prior to 6.4.1, DOM.sanitize() in…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-09-03
date_modified: 2026-09-08
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-85061"
kev: false
cvss: 10
epss: 0.00522
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-85061: MapLibre GL JS: XSS Sanitizer Bypass in DOM.sanitize() via Live NamedNodeMap Removal Skip

**Signal:** Critical and remotely reachable. No known exploitation yet, but it is network-reachable without credentials. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
- EPSS 0.5% , percentile 43: FIRST’s model estimates a 0.5% chance of exploitation activity in the next 30 days, higher than 43% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
- Only applies if your dependency tree includes maplibre-gl (npm) <= 6.4.0, fixed in 6.4.1 . Check your lockfile, including transitive dependencies.

## What it is

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

- npm `maplibre-gl` <= 6.4.0 → fixed: 6.4.1

## Affected products (CVE record)

- maplibre maplibre-gl-js: < 6.4.1

## Severity

- GitHub_M CVSS 3.1: 10 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N`
- GitHub CVSS 3.1: 10.0 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation none , automatable yes , technical impact total .
- FIRST EPSS (model of 2026-10-21): 0.52% probability of exploitation activity in the next 30 days; percentile 43.

## Sources

- [GitHub Advisory GHSA-jrc7-96c5-q579](https://github.com/advisories/GHSA-jrc7-96c5-q579)
- [CVE.org record CVE-2026-85061](https://www.cve.org/CVERecord?id=CVE-2026-85061)
- [NVD entry CVE-2026-85061](https://nvd.nist.gov/vuln/detail/CVE-2026-85061)
- [github.com](https://github.com/maplibre/maplibre-gl-js/security/advisories/GHSA-jrc7-96c5-q579)
- [github.com](https://github.com/maplibre/maplibre-gl-js/pull/8189)
- [github.com](https://github.com/maplibre/maplibre-gl-js/commit/1da69f3cd913a39fa948708e01478663bf48bc27)
- [github.com](https://github.com/maplibre/maplibre-gl-js/releases/tag/v6.4.1)

---
Source page: https://erroneo.us/security/cve/CVE-2026-85061/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
