本仓库包含一个专门用于利用 CVE-2026-29000 的 Rust 实现,该漏洞是 pac4j-jwt 中的一个身份验证绕过漏洞。该漏洞源于当 PlainJWT(alg: none)嵌套在加密的 JWE 容器中时,会发生“签名验证跳过”。
自动获取 JWKS:直接从 /api/auth/jwks 端点获取目标服务器的 RSA 公钥。
构造无签名 JWS:使用 None 算法构造带有管理权限声明(ROLE_ADMIN)的 JWT。
JWE 封装:使用 RSA-OAEP-256 和 A128GCM 封装恶意内部令牌,以绕过初始外围过滤器。
异步执行:基于 tokio 和 reqwest 实现高效网络通信。
已安装 Rust/Cargo。
可访问目标网络(默认:http://principal.htb:8080)。
安装 克隆仓库:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
运行漏洞利用生成器以输出伪造的 JWE:
cargo run
该漏洞利用的是一个逻辑缺陷:当库解密外层 JWE 时,如果内层 JWS 的头部指定了 alg: none,则不会递归验证其签名。
内层:一个包含管理员主体的 alg: None JWT。
外层:内层 JWT 使用服务器自身的公钥进行加密。
结果:服务器解密令牌后,看到其加密正确,便信任内层载荷,而无需检查签名。
本工具仅用于教育目的和授权安全测试(CTF/实验室环境)。未经授权访问计算机系统属于违法行为。