Repository navigation
chore(deps): update dependency maplibre-gl to v6.4.1 [security] - autoclosed - #3
Closed
renovate[bot] wants to merge 1 commit into
Closed
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
6.3.0→6.4.1^6.3.0→^6.4.1These land in the published bundle (
map0-viewer). Check the page-tier line ofpnpm sizein the CI log, and the smoke and visual steps.MapLibre is copied into dist as three files (docs/09 §3.1) and is an optional peer of
map0-viewer. On a major, runpnpm build:npm && node e2e/verify-types.mjsas well.MapLibre GL JS: XSS Sanitizer Bypass in DOM.sanitize() via Live NamedNodeMap Removal Skip
CVE-2026-85061 / GHSA-jrc7-96c5-q579
More information
Details
Impact
DOM.sanitize()insrc/util/dom.tsiteratedelem.attributes(a liveNamedNodeMap) while callingelem.removeAttribute()in the same loop. Removing an attribute shifts subsequent attributes down by one index, causing the iterator to skip the adjacent attribute.An attacker can provide an HTML payload with consecutive dangerous attributes (such as
<details open onload="1" ontoggle="...">). The first attribute is stripped while the second survives and executes upon insertion intoinnerHTMLvia the attribution control without requiring user interaction (zero-click XSS).Applications rendering untrusted/third-party style attribution strings or user-supplied custom attributions are impacted.
Patches
The issue has been resolved by creating a static snapshot of attributes using
Array.from(elem.attributes)before iteration. Please upgrade tomaplibre-glversion 6.4.1 (or latest).Workarounds
Sanitizing the attribute field of a source before passing it down to maplibre
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
maplibre/maplibre-gl-js (maplibre-gl)
v6.4.1Compare Source
🐞 Bug fixes
DOM.sanitizeleaving dangerous attributes behind when multiple consecutive attributes are present. Iterating the liveNamedNodeMapfromelem.attributeswhile callingremoveAttributeskipped the attribute directly after a removed one, so a second dangerous attribute (for example anontoggleon a<details open>element) could survive sanitisation and later execute (#8189) (by @0xKirisame)CustomRenderMethodInput.defaultProjectionData.projectionTransition, which was hardcoded to 1 for the whole globe/mercator transition, so a custom layer jumped straight to the fully bent globe while every other layer eased (#8169) (by @mondsichtung)v6.4.0Compare Source
✨ Features and improvements
Array.sort()in cross-tile symbol matching (TileLayerIndex.findMatches), claiming the lowest-index unclaimed candidate in a single pass instead; reduces main-thread symbol-placement cost on dense/coincident symbol layers (#7797) (by @pholmstr)texelFetchfor exact DEM and color-relief elevation stop lookups instead of normalized texture coordinate arithmetic (#7640) (by @johncarmack1984)🐞 Bug fixes
gfx.color_management.mode = 1in Firefox) (#8125) (by @tnikkel)transformRequest, soImageSource.updateImageno longer loses the image it was just handed and an aborted tile is no longer fetched (#8071) (by @mondsichtung)fill-extrusion-rounded-corner-distanceproducing spikes: corner arcs now land on the integer tile grid, and corners created by tile clipping are left sharp (#8153) (by @HarelM)Configuration
📅 Schedule: (in timezone Europe/Vienna)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.