CVE-2026-5167该漏洞存在于WordPress的Masteriyo LMS插件中,影响版本包括2.1.7及以下。漏洞源于`handle_webhook()`函数中webhook签名验证机制不完善。当插件未配置webhook密钥(默认为空字符串)时,端点会处理未经身份验证的请求,且仅当特定HTTP头存在时才进行验证。攻击者可利用此缺陷绕过验证,伪造Stripe webhook事件,将任意订单标记为已完成,从而在未支付的情况下访问付费课程内容。
漏洞核心在于Masteriyo LMS插件处理Stripe webhook时的逻辑缺陷。在`StripeAddon.php`的`handle_webhook()`函数中,代码仅在`webhook_secret`配置项不为空且请求头包含`HTTP_STRIPE_SIGNATURE`时才执行签名验证。由于该插件的`webhook_secret`默认值为空字符串,导致验证逻辑被绕过。攻击者无需任何认证即可向webhook端点发送特制的JSON数据包。通过构造包含恶意`order_id`的metadata字段,攻击者可以模拟合法的支付成功事件(如`checkout.session.completed`)。插件在收到此伪造请求后,会错误地将对应的订单状态更新为“已完成”,进而授予攻击者对付费课程内容的访问权限。这实质上是通过用户控制的关键参数(即签名验证条件的缺失)导致了授权绕过。