Skip to main content

Leaflet EUVDEUVD-2025-209449

| CVE-2025-69993 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-04-14 cve@mitre.org GHSA-h5cx-hfj5-x8v3
6.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Attacker crafts XSS payload
  2. Delivery
    Injects payload into user input field or URL parameter
  3. Exploit
    Payload passes to bindPopup() method
  4. Execution
    bindPopup() renders HTML without sanitization
  5. Persist
    Malicious event handler executes in victim's browser
  6. Impact
    Attacker 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

n/a n/a

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

NVD PRIMARY 6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Red Hat 6.1 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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

EPSS Score
0.0%
Top 92% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 0.0%
Patch available No
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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.

Vendor StatusVendor

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