CVE-2025-12134CVE-2025-12134是WordPress平台ZoloBlocks插件中的一个安全漏洞。该插件是一款流行的Gutenberg块编辑器插件,提供高级块、动态内容、模板和模式等功能。漏洞存在于插件的update_popup_status()函数中,由于缺少适当的权限检查和身份验证机制,导致任何未经身份认证的用户都可以调用该函数并修改弹窗的启用/禁用状态。
此漏洞的严重程度为中等,CVSS评分为5.3。攻击者无需任何用户凭据即可利用此漏洞,这意味着任何能够访问网站的人都可以修改弹窗配置。在实际攻击场景中,攻击者可能利用此漏洞禁用关键的营销弹窗、通知弹窗或安全警告弹窗,从而干扰网站的正常运营和用户体验。
该漏洞影响插件所有2.3.11及以下版本。由于弹窗功能通常用于用户通知、Cookie同意、促销活动、安全警告等重要场景,攻击者修改弹窗状态可能导致业务中断、用户数据收集受阻、合规性问题(如GDPR合规的Cookie同意弹窗被禁用)等严重后果。
建议所有使用ZoloBlocks插件的WordPress网站管理员立即检查并更新插件至最新版本,以修复此安全漏洞。同时,应审查近期网站访问日志,检查是否存在异常的弹窗状态修改行为。
漏洞根源在于ZoloBlocks插件的update_popup_status()函数缺乏WordPress的权限检查机制。在正常的WordPress插件开发中,涉及数据修改的操作通常需要使用wp_verify_nonce()验证nonce令牌,并使用current_user_can()检查用户权限。
然而,ZoloBlocks插件的update_popup_status()函数直接暴露在WordPress的REST API或admin-ajax.php接口中,允许匿名用户通过HTTP请求调用。该函数接收popup ID和新状态(启用/禁用)作为参数,然后直接更新数据库中的弹窗状态,而无需验证请求者身份。
攻击者可以通过构造如下HTTP请求来利用此漏洞:向wp-admin/admin-ajax.php或REST API端点发送POST请求,包含action参数设置为update_popup_status,以及popup_id和status参数。服务器端代码直接执行状态更新操作,没有任何授权检查。
由于该函数没有使用WordPress的nonce机制,攻击者无法通过CSRF token验证来阻止攻击。此外,由于缺少authentication检查,匿名用户也可以成功调用该函数。这种组合使得漏洞利用变得非常简单和直接。
漏洞影响版本:ZoloBlocks插件 <= 2.3.11。修复版本应为2.3.12或更高版本,开发者需要在update_popup_status()函数中添加适当的权限检查和nonce验证。