CVE-2025-9895CVE-2025-9895是WordPress Notification Bar插件(插件目录名为simple-bar)中的一个跨站请求伪造(CSRF)漏洞。该漏洞由Wordfence安全团队的安全研究员发现,并于2025年10月3日公开披露。该漏洞影响该插件所有2.2及以下版本。
Notification Bar是一款广受欢迎的WordPress插件,允许网站管理员在网站顶部或底部添加通知栏,用于展示促销信息、公告或邮件订阅表单。该插件具备订阅者列表管理功能,网站管理员可以通过该功能收集和管理通过通知栏订阅的用户信息。
漏洞的根本原因在于插件中的subscriber-list-empty.php文件缺少正确或完整的Nonce(一次性令牌)验证机制。Nonce是WordPress中用于防止CSRF攻击的标准安全机制,通过在表单提交或关键操作中嵌入唯一的、不可预测的令牌来确保请求来源于合法用户。然而,在该插件中,当管理员尝试清空订阅者列表时,系统未对请求进行有效的Nonce验证,导致攻击者可以构造恶意的跨站请求,诱骗已登录的管理员在不知情的情况下执行清空订阅者列表的操作。
该漏洞的CVSS评分为4.3分,属于中等严重级别。虽然该漏洞需要用户交互(管理员点击恶意链接)且无需认证即可利用,但其影响仅限于订阅者列表数据的完整性破坏,不会直接泄露敏感信息或导致远程代码执行。然而,对于依赖邮件订阅列表进行营销的网站来说,订阅者列表被恶意清空可能造成严重的业务损失和用户信任危机。
该漏洞的核心技术问题在于WordPress Notification Bar插件的subscriber-list-empty.php文件中缺失了CSRF保护机制。
在WordPress开发中,防止CSRF攻击的标准做法是使用wp_nonce_field()函数在表单中生成一次性令牌,并使用check_admin_referer()或wp_verify_nonce()函数在处理请求时验证该令牌。这种机制确保只有拥有有效令牌的合法用户提交的请求才会被处理。
在受影响的版本中,subscriber-list-empty.php文件直接处理清空订阅者列表的请求,而没有进行任何Nonce验证或Referer检查。攻击者可以利用这一缺陷,按照以下方式实施攻击:
1. 攻击者首先构造一个恶意HTML页面或电子邮件,其中包含一个自动提交或隐藏的表单/图片标签,指向目标WordPress网站的订阅者清空操作URL(如:https://target-site.com/wp-admin/admin.php?action=empty_subscriber_list)。
2. 当目标网站的管理员在已登录状态下访问包含恶意代码的页面时,浏览器会自动携带管理员的认证Cookie发送请求到目标网站。
3. 由于插件未验证请求来源的合法性,服务器会直接执行清空订阅者列表的操作。
4. 管理员在不知情的情况下,其网站的订阅者列表被完全清空。
攻击的关键前提是:管理员必须已登录到目标WordPress网站的后台,并且被诱导访问攻击者控制的恶意页面或点击恶意链接。这种攻击方式通常通过钓鱼邮件、社交媒体或被入侵的网站进行传播。