CVE-2026-41213@node-oauth/oauth2-server模块在实现OAuth2服务器的S256 PKCE流程时存在安全缺陷。系统错误地接受不符合RFC7636标准的短code_verifier值,且验证失败不会消耗授权码。攻击者可利用此漏洞,在拦截到授权码后,通过暴力破解方式猜测code_verifier,最终成功获取令牌,造成严重的信息泄露风险。
该漏洞源于@node-oauth/oauth2-server在处理OAuth2 PKCE(Proof Key for Code Exchange)扩展机制时的逻辑缺陷。PKCE旨在防止授权码拦截攻击,要求客户端提交高熵的code_verifier。根据RFC7636规范,S256模式下的code_verifier应具备足够的长度和随机性。然而,受影响版本未对code_verifier的强度进行有效校验,允许提交单字符等极弱字符串。更为关键的是,该模块在code_verifier验证失败时,未按照安全惯例使授权码失效,导致授权码可被重复使用。攻击者利用网络攻击手段截获授权码后,可利用该漏洞发起在线暴力破解攻击。由于攻击无需认证(PR:N)且无用户交互(UI:N),攻击者可自动化遍历简短的字符空间。一旦猜中正确的code_verifier,服务器将签发访问令牌,导致用户权限被完全窃取(C:H),严重破坏了OAuth2授权流程的安全性。