Skip to main content

maplibre-gl-js-amplify EUVDEUVD-2026-116136

| CVE-2026-121652 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-11-03 AMZN
4.8
CVSS 4.0 · Vendor: AMZN
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to consuming app
  2. Delivery
    Store payload in title/address/place_name or geofenceId
  3. Exploit
    Victim renders map and clicks marker
  4. Execution
    innerHTML inserts unescaped value
  5. Persist
    Script executes in victim browser
  6. Impact
    Session hijack or data exfiltration

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated actor who can persist attacker-controlled location or geofence data through the consuming application - specifically a GeoJSON feature 'title', 'address', or 'place_name' property rendered by popupRender, or a 'geofenceId' rendered in AmplifyGeofenceControl list items and the delete-confirmation prompt (library versions <= 4.0.2). The payload only executes when a victim actively interacts with the rendered element, e.g. clicking the affected map marker or viewing/deleting the geofence list item (UI:A). Limiting factors: the attacker must already hold write access to these fields (PR:L, not unauthenticated), the application must actually use these rendering paths, and a second user must trigger the render - so it is not drive-by. There is no complete workaround; upgrading to 4.0.3 or later is required. As defense in depth the vendor suggests validating/sanitizing title, address, place_name, and geofence identifiers on input and applying a restrictive Content Security Policy.

Impact

This is a genuinely medium-severity, lower-priority issue rather than a high-CVSS-but-low-real-risk mismatch - the signals are internally consistent. The authoritative CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N) describes a network-reachable but privilege- and interaction-gated flaw: PR:L means the attacker must already be an authenticated user of the consuming application able to store location/geofence records, and UI:A means a victim must actively interact (e.g. click a map marker) for the stored payload to fire. Impact is limited (VC:L/VI:L, no availability impact), consistent with a stored XSS running in the victim's browser context. The vuln.today Decision label is 'this_month' (not act_now/emergency), aligning with the medium score. No CISA KEV listing and no EPSS score were supplied, so there is no evidence of active exploitation or elevated exploitation probability; treat exploitation likelihood as unquantified rather than low-confirmed. No PoC or exploit reference is present in the input - only a vendor patch, the GHSA advisory, and an AWS security bulletin. There are no conflicting signals: the stored-XSS mechanism, the authenticated precondition, and the required victim interaction are all corroborated by the vendor GHSA advisory and source-code evidence. Net priority: schedule the upgrade within a normal patch cycle; it is not an emergency.

Exploit ScenarioDerived

An authenticated user of an application built on maplibre-gl-js-amplify stores a crafted record whose title, address, or place_name GeoJSON property (or a geofenceId) contains an HTML/JavaScript payload. When another authenticated user later renders the map and interacts with the corresponding marker or geofence list item, the unsanitized value is written to the DOM via innerHTML and the script executes in the victim's session, enabling session hijacking or data exfiltration. No public exploit identified at time of analysis; the trigger path is confirmed by the vendor GHSA advisory and the v4.0.3 fix commit.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Stored cross-site scripting in AWS Amplify's maplibre-gl-js-amplify library (versions through 4.0.2) lets an authenticated user who can write location or geofence data persist an HTML/JavaScript payload that later executes in a different user's browser session when the affected map popup or geofence list item is rendered. The vulnerable sinks are the GeoJSON feature properties title, address and place_name used by popupRender, plus the geofenceId value rendered in AmplifyGeofenceControl list items and the delete-confirmation prompt; the payload fires only when a victim interacts with the element, such as clicking the marker or opening/deleting a geofence entry, so this is not a drive-by issue. No public exploit code or active exploitation has been identified at time of analysis, and the vendor-released patch is version 4.0.3, which escapes the affected values via a new escapeHtml() utility.

RemediationAI

Upgrade the maplibre-gl-js-amplify npm dependency to version 4.0.3 or later, the release that applies escapeHtml() to the affected values (https://github.com/aws-amplify/maplibre-gl-js-amplify/releases/tag/v4.0.3); the same release also picks up form-data 3.0.5 for GHSA-hmw2-7cc7-3qxx, so a single bump covers both. The vendor explicitly states there is no workaround that fully addresses the issue and that upgrading is required; as defense in depth only, applications that cannot upgrade immediately should validate and sanitize all user-supplied location and geofence data (title, address, place_name and geofence identifiers) on input and apply a restrictive Content Security Policy to limit the impact of any injected script - noting that a strict CSP can break legitimate inline scripts or third-party tiles and must be tested against the map application, and that input sanitization depends entirely on the consuming application doing it correctly and consistently across every write path, including forked or derivative code that must also be patched.

Affected VersionsENISA

maplibre-gl-js-amplify 0 <4.0.3

Affected Packages

euvd maplibre_gl_js_amplify fix: 4.0.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

maplibre-gl-js-amplify is an AWS Amplify open-source library that wires Amazon Location Service into MapLibre GL JS to render maps, markers, popups and geofencing controls in web applications. The flaw is CWE-79 (improper neutralization of input during web page generation): several rendering paths interpolated user-controlled values directly into the DOM through innerHTML without escaping, so any HTML or script stored in a GeoJSON feature's title, address or place_name property, or in a geofenceId, is parsed as markup rather than text. The upstream fix (commit 5804fbc, referenced as P399993263) introduces an escapeHtml() utility applied to all affected values before insertion. Severity is bounded by the fact that the attacker must already hold write access to the stored records (CVSS 4.0 PR:L / assessed 3.1 PR:L) and the victim must actively trigger the render (UI:A); the scope-changed assessment (S:C) reflects that injected script executes in the consuming application's browser context, which is where session hijacking or data exfiltration would occur. The same 4.0.3 release also bumps the form-data dependency to 3.0.5 for an unrelated CRLF injection issue (GHSA-hmw2-7cc7-3qxx).

Know when AWS gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (AMZN) PRIMARY 4.8 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Authenticated attacker must store data (PR:L) and a victim must interact to trigger it (UI:R); stored XSS executes across the victim's browser context (S:C) with limited confidentiality/integrity impact and no availability loss.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (AMZN).

CVSS VectorVendor: AMZN

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Active
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
CVSS changed
Nov 03, 2026 - 19:22 NVD
5.4 (MEDIUM) 4.8 (MEDIUM)

DescriptionCVE.org

Cross-site scripting (XSS) issue in AWS Amplify maplibre-gl-js-amplify before 4.0.3 might allow remote authenticated users to inject arbitrary web script or HTML via the (1) title, (2) address, or (3) place_name property in GeoJSON feature data rendered by popupRender, or the (4) geofenceId value rendered in AmplifyGeofenceControl.

To remediate this issue, users should upgrade to 4.0.3 or later.

Threat Intelligence Overview

Prevalence
Low
niche AWS Amplify npm library for Amazon Location Service maps
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in AWS

View all
CVE-2026-103956 CRITICAL POC
10.0 Oct 02

Loom for AWS deployments running a version before 1.6.1 with no identity provider configured expose an unauthenticated s

CVE-2026-27702 CRITICAL POC
9.9 Feb 25

Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal

CVE-2025-64709 CRITICAL POC
9.9 Nov 13

Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar

CVE-2020-37153 CRITICAL POC
9.8 Feb 11

Multiple vulnerabilities in ASTPP 4.0.1 including XSS and command injection in SIP device configuration and plugin manag

CVE-2026-87911 CRITICAL POC
9.0 Sep 09

Remote code execution in Amazon awslabs postgres-mcp-server before 1.1.7 lets remote actors run arbitrary OS commands on

CVE-2026-11393 HIGH POC
8.8 Jun 08

Remote code execution in AWS AgentCore CLI before v0.14.2 allows authenticated attackers to inject Python code via craft

CVE-2026-18140 HIGH POC
8.7 Jul 30

Denial of service in the aws-smithy-json Rust runtime crate (versions before 0.62.7) lets remote unauthenticated attacke

CVE-2026-16756 HIGH POC
8.7 Jul 23

Denial of service in Amazon's aws-smithy-http-server Rust crate (versions prior to 0.66.5) lets remote unauthenticated a

CVE-2026-16796 HIGH POC
8.4 Jul 23

Argument injection in the AWS Bedrock AgentCore Python SDK before 1.18.1 lets a remote authenticated user run arbitrary

CVE-2026-9133 HIGH POC
8.3 May 20

Arbitrary file read in amazon-mq rabbitmq-aws before 0.2.1 allows authenticated remote users to read any file accessible

CVE-2026-13763 HIGH POC
7.9 Jun 29

WAF managed-rule body inspection on AWS Application Load Balancer (ALB) can be bypassed by remote actors who fragment an

CVE-2026-13762 HIGH POC
7.9 Jun 29

WAF inspection bypass in Amazon CloudFront (with AWS WAF enabled) lets remote actors smuggle malicious request bodies pa

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy