CVE-2025-14441CVE-2025-14441是WordPress Popupkit插件中的一个高危安全漏洞,该漏洞存在于所有版本直至2.2.0。漏洞的根本原因在于REST API端点的权限验证机制不完善,具体表现为DELETE `/subscribers` REST API端点仅验证了wp_rest nonce,但未对用户的实际能力进行权限检查。这导致任何具有Subscriber级别或更高权限的认证用户都可以通过该API端点删除数据库中的任意订阅者记录,而无需具备相应的管理权限。该漏洞的CVSS评分为4.3,属于中等严重程度,攻击向量为网络攻击,所需权限低且无需用户交互。攻击者可以利用此漏洞非法删除订阅者数据,影响网站的正常运营和数据完整性。由于该插件被广泛应用于WordPress网站用于弹窗和订阅者管理,此漏洞可能影响大量使用该插件的网站。
该漏洞的技术根源在于WordPress REST API权限回调的实现缺陷。在Popupkit插件的Subscribers.php文件中,DELETE `/subscribers` REST API端点的permission_callback函数仅执行了wp_rest nonce的验证,用于确认请求确实来自WordPress站点内部。然而,该回调函数并未调用current_user_can()或类似的权限检查函数来验证当前登录用户是否具有删除订阅者记录的权限。根据WordPress安全最佳实践,REST API端点应该同时验证请求的合法性(nonce)和用户的操作权限(capabilities check)。具体代码位置位于plugins.trac.wordpress.org/browser/popup-builder-block/tags/2.2.0/includes/Routes/Subscribers.php的第64行和第77行。由于缺少用户能力检查,任何Subscriber角色(WordPress默认最低权限角色)的用户都可以发送DELETE请求到该端点,指定任意订阅者ID进行删除操作。攻击者只需知道订阅者记录的ID即可执行删除,无需任何特殊权限或管理员干预。