Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker crafts XSS payload
-
DeliveryInjects payload into user input field or URL parameter
-
ExploitPayload passes to bindPopup() method
-
ExecutionbindPopup() renders HTML without sanitization
-
PersistMalicious event handler executes in victim's browser
-
ImpactAttacker gains session access or steals data
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. |
| Impact | CVSS 6.1 with CVSS:3.1/AV:N/AC:L/PR:N/S:C/C:L/I:L/A:N indicates network-accessible attack vector with low complexity and no authentication required, but requires user interaction (clicking a popup) and results in confidentiality and integrity impact with changed scope. The UX requirement (UI:R) is the primary friction point-an attacker must trick a victim into interacting with a malicious map popup. Real-world risk depends heavily on context: in applications where users control map data (crowdsourced maps, user-generated content platforms) or where attackers can inject content through URL parameters or stored data, this is a practical and immediate concern. In contrast, maps with entirely trusted, developer-controlled content face minimal risk. The vulnerability's exploitability is straightforward-no complex gadget chains or advanced techniques required-but it is not automatically exploitable across all deployments. EPSS scoring would likely reflect moderate-to-elevated probability given the simplicity of the attack pattern, but the actual priority must account for whether the affected application accepts untrusted input to bindPopup(). |
| Exploit ScenarioDerived | An attacker crafts a malicious URL or injects data into a shared map application that uses Leaflet. The URL or data includes a popup binding with an image tag containing an onerror handler: <img src=x onerror="alert('XSS')"> or more dangerously, code to exfiltrate cookies or perform actions on behalf of the logged-in user. When a victim clicks on the corresponding map feature (e.g., a marker), the popup renders with the malicious payload, the browser's HTML parser executes the onerror attribute, and the attacker's JavaScript runs with the victim's session privileges. In a stored variant, the malicious content persists in a database, affecting all users who view the map. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 14, 2026
Leaflet through version 1.9.4 allows stored or reflected cross-site scripting (XSS) via the bindPopup() method, which renders user-supplied HTML without sanitization. Network-based attackers can inject malicious JavaScript through event handler attributes in popup content, executing arbitrary code in victims' browser sessions when they interact with affected map popups. No public exploit code or active exploitation has been confirmed at this time, though the vulnerability carries a CVSS 6.1 base score reflecting moderate risk with network-accessible attack surface and user interaction requirement.
RemediationAI
Developers must upgrade Leaflet to a patched version beyond 1.9.4 (consult the official Leaflet GitHub repository or npm page for the exact fix version). As an interim workaround before patching, sanitize all user-supplied input before passing it to bindPopup() using a DOM sanitization library such as DOMPurify, bleach (for server-side rendering), or the OWASP HTML Sanitizer. Implement Content Security Policy (CSP) headers with 'script-src' restrictions to mitigate XSS impact even if injection occurs. Review and audit all instances of bindPopup() in your codebase to identify which accept dynamic or user-controlled content. For applications where map content is entirely under developer control, risk is lower, but defense-in-depth sanitization is still recommended. Consult the GitHub advisory (https://github.com/PierfrancescoConti/leaflet-cve-2025-69993/blob/main/ADVISORY.md) and the official Leaflet project page (http://leaflet.com) for updates and additional guidance.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Leaflet is a popular open-source JavaScript mapping library used to render interactive web maps. The bindPopup() method is designed to attach HTML content to map features (markers, polygons, etc.) that displays when users click on them. The vulnerability stems from the method's failure to sanitize or escape user-supplied input before rendering it as raw HTML in the DOM. This is a classic reflected or stored XSS flaw where the application trusts HTML content that should be treated as untrusted user data. Event handler attributes (onerror, onload, onclick, etc.) within the injected HTML are automatically executed by the browser's HTML parser, leading to arbitrary JavaScript execution in the security context of the victim's browser session. The attack surface includes any web application embedding Leaflet that accepts user input (via URL parameters, form fields, or database content) and passes it to bindPopup() without prior sanitization.
Know when Leaflet 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
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Primary rating from NVD.
CVSS VectorNVD
DescriptionCVE.org
Leaflet versions up to and including 1.9.4 are vulnerable to Cross-Site Scripting (XSS) via the bindPopup() method. This method renders user-supplied input as raw HTML without sanitization, allowing attackers to inject arbitrary JavaScript code through event handler attributes (e.g., <img src=x onerror="alert('XSS')">). When a victim views an affected map popup, the malicious script executes in the context of the victim's browser session.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2025-209449
GHSA-h5cx-hfj5-x8v3
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB