CVE-2026-9822CVE-2026-9822是存在于WordPress热门酒店预订插件WP Hotel Booking中的一个中等严重性安全漏洞。该漏洞由WPScan团队([email protected])发现并报告,于2026年6月19日公开披露。其CVSS 3.1评分为6.5分,属于中危级别。
该漏洞的根本原因在于WP Hotel Booking插件在多个AJAX处理器(AJAX handlers)中未实施有效的权限校验(capability checks)。在正常的WordPress安全模型中,AJAX端点应当通过current_user_can()等函数验证调用者是否具备执行相应操作的权限。然而,该插件在2.3.1版本之前的多个AJAX端点中缺失了此类检查,导致任何已通过身份验证的用户(包括权限最低的Subscriber订阅者级别用户)均可调用这些敏感接口。
成功利用此漏洞后,攻击者可以执行以下未授权操作:1)读取其他用户的预订明细项(booking line items),从而获取他人的订单信息;2)枚举系统中所有有效的优惠券(active coupons),获取优惠券代码及相关优惠信息;3)读取定价数据(pricing data),可能泄露商业敏感信息。
虽然该漏洞不涉及代码执行或数据篡改,但其对机密性影响较高(C:H),攻击者可通过网络远程利用,无需用户交互,攻击门槛较低(仅需Subscriber级别账户)。对于运营酒店预订业务的WordPress网站而言,此漏洞可能导致用户隐私数据泄露和商业信息暴露,对网站运营者和用户均构成实质性威胁。
在WordPress架构中,AJAX请求通常通过admin-ajax.php处理,插件通过wp_ajax_{action}和wp_ajax_nopriv_{action}钩子注册处理器。安全实践要求敏感操作必须验证调用者权限,通常使用current_user_can('manage_options')或自定义capability进行校验。
WP Hotel Booking插件在2.3.1版本之前的多个AJAX action处理器中缺少权限验证逻辑,例如处理预订查询、优惠券列表获取和定价信息读取的端点。攻击者只需拥有一个Subscriber级别账户(WordPress默认最低权限角色),即可通过构造特定的AJAX POST请求(携带对应的action参数)调用这些端点,绕过权限检查直接读取敏感数据。
利用方式上,攻击者首先注册或获取一个Subscriber级别账户,然后通过浏览器开发者工具或命令行工具(如curl)向/admin-ajax.php发送包含目标action的POST请求。由于服务端未执行capability检查,请求将被处理并返回包含其他用户预订信息、优惠券列表或定价数据的JSON响应。由于漏洞利用全程在已认证会话中进行,且无需特殊权限提升,因此具有较高的隐蔽性和可操作性。