pac4j-jwt 身份验证绕过漏洞分析

pac4j-jwt 身份验证绕过漏洞分析 pac4j-jwt JwtAuthenticator 身份验证绕过漏洞分析(CVE-2026-29000)一、漏洞概述1.1 基本信息项目内容漏洞编号CVE-2026-29000漏洞名称pac4j-jwt JwtAuthenticator 身份验证绕过漏洞漏洞类型CWE-347:加密签名验证不当 (Improper Verification of Cryptographic Signature)厂商/项目pac4j / pac4j-jwtCVSS 评分10.0 (CRITICAL) — CVSS 3.1CVSS 向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NCVE ID 来源VulnCheck (disclosure@vulncheck.com)漏洞发现者VulnCheck披露日期2026-03-041.2 漏洞简介CVE-2026-29000 是 pac4j-jwt 库中 JwtAuthenticator 组件的一个严重身份验证绕过漏洞(CVSS 10.0)。攻击者在获取目标服务器 RSA 公钥(通常通过 JWKS 端点公开可获取)后,可构造一个 JWE(加密 JWT)包裹的 PlainJWT(alg: none 的无签名 JWT),并在其中嵌入任意 subject 和 role 声明。由于 JwtAuthenticator 在解密 JWE 后将内部令牌强制转换为 SignedJWT 时,toSignedJWT() 对 PlainJWT 返回 null 后未能正确处理,导致签名验证被跳过,但声明仍被提取并用于构建用户配置文件。攻击者无需任何凭据即可伪装为任意用户(包括管理员)通过身份验证,完全接管目标应用。公开 PoC 已存在,利用门槛极低。二、漏洞影响2.1 受影响版本pac4j-jwt 4.x: 4.5.9pac4j-jwt 5.x:= 5.0.0-RC1, 5.7.9pac4j-jwt 6.x:= 6.0.4.1, 6.3.32.2 技术原理该漏洞存在于 pac4j-jwt 的 Jw