CVE-2025-10294CVE-2025-10294是WordPress OwnID Passwordless Login插件中存在的一个严重认证绕过漏洞。该插件是一款用于实现无密码登录功能的WordPress插件,旨在通过JWT(JSON Web Token)机制为用户提供便捷的登录体验。然而,该插件在所有1.3.4及以下版本中存在严重的安全缺陷,具体表现为插件在通过JWT验证用户身份时,未能正确检查ownid_shared_secret配置项是否为空值。当插件尚未完成完整配置时,ownid_shared_secret可能保持为空状态,攻击者可以利用这一缺陷构造恶意的JWT请求,绕过身份验证机制,以任意用户(包括管理员)身份登录受影响的WordPress站点。
该漏洞由Wordfence安全团队的研究员发现并报告,CVSS 3.1评分为9.8分,属于最高严重等级。漏洞的利用条件极为宽松:攻击者无需任何认证凭据,无需用户交互,仅需通过网络即可发起攻击。由于WordPress是全球使用最广泛的内容管理系统,而管理员账户一旦被攻陷将导致整个站点完全失控,包括数据泄露、恶意内容注入、恶意软件分发等严重后果,因此该漏洞对全球数百万WordPress站点构成重大威胁。该漏洞已于2025年10月15日公开披露,强烈建议所有使用该插件的站点管理员立即采取行动。
该漏洞的根本原因在于OwnID Passwordless Login插件的JWT验证逻辑存在缺陷。插件在处理用户认证请求时,会接收客户端发送的JWT令牌,并使用ownid_shared_secret作为密钥来验证令牌的有效性。然而,代码中的验证流程存在一个关键的安全缺陷:在执行JWT签名验证之前,插件未检查ownid_shared_secret是否已被正确配置(即是否为空字符串或null值)。
当插件处于初始安装或未完全配置状态时,ownid_shared_secret可能默认为空值。在这种情况下,攻击者可以使用空字符串作为密钥自行签发一个有效的JWT令牌。由于插件的验证逻辑未对此异常情况进行拦截,伪造的JWT令牌将被视为合法令牌,攻击者从而可以以任意用户身份通过认证。
具体利用方式如下:
1. 攻击者首先需要了解目标站点的用户ID结构(通常是1为管理员);
2. 使用空字符串作为密钥,利用JWT库(如PyJWT)构造包含目标用户ID的伪造JWT令牌;
3. 将伪造的JWT令牌通过OwnID插件的认证端点提交;
4. 插件验证JWT签名(使用空密钥验证攻击者伪造的签名),验证通过后返回有效的认证Cookie或会话;
5. 攻击者使用获取的会话以管理员身份登录WordPress后台。
整个攻击过程无需任何已认证的凭据,无需与目标用户进行任何交互,且可以通过自动化脚本批量执行,对未打补丁的站点构成极大威胁。