CVE-2025-11986WordPress Crypto插件是一款用于加密货币相关功能的WordPress插件。该插件在2.22及之前所有版本中存在严重的安全漏洞,源于其注册了一个未认证的AJAX动作(wp_ajax_nopriv_crypto_connect_ajax_process)。该端点允许攻击者调用register和savenft方法,仅需提供公开可用的nonce检查即可,无需任何钱包签名验证。攻击者利用此漏洞可以设置站点范围的全域认证状态,通过单个transient实现对所有访问者访问控制的完全绕过。此漏洞的影响范围包括:绕过[crypto-block]短代码限制、绕过页面级访问控制,影响持续约一小时。此外,攻击者还可以在插件的custom_users表中注入任意数据,可能导致用户数据泄露和进一步的恶意操作。由于无需认证即可利用此漏洞,因此任何互联网用户都可能成为潜在攻击者。
该漏洞的根本原因在于Crypto插件的认证机制设计缺陷。插件通过wp_ajax_nopriv_crypto_connect_ajax_process注册了一个公开的AJAX端点,该端点对应class_crypto_connect_ajax_register.php中的register和savenft方法。具体问题包括:1) 端点仅依赖公开的nonce值进行验证,而非加密签名;2) 缺少钱包签名验证机制;3) 认证状态通过transient存储,可被攻击者操纵。攻击者发送请求时会触发savenft方法,该方法将数据存储到custom_users表中,同时设置一个全局认证状态的transient。这个transient的过期时间约为1小时,在此期间所有访问者都会被识别为已认证用户,从而绕过所有基于用户角色的访问控制。攻击者还可以利用此漏洞向custom_users表注入任意数据,包括伪造的用户记录或恶意内容。