alihussainzada/CVE-2026-29000-Python-PoC-pac4j-JWT-AuthenticationBypass-Poc

GitHub: alihussainzada/CVE-2026-29000-Python-PoC-pac4j-JWT-AuthenticationBypass-Poc

针对 CVE-2026-29000 的 Python 概念验证工具,利用 pac4j JWT 模块的签名验证缺陷实现认证绕过。

Stars: 0 | Forks: 0

# CVE-2026-29000 – pac4j JWT 认证绕过 (Python PoC) 针对 **CVE‑2026‑29000** 的 Python 概念验证,这是一个影响使用 **pac4j JWT 模块** 应用程序的严重认证绕过漏洞。 该漏洞允许攻击者通过发送一个包含未签名 PlainJWT (`alg: none`) 的恶意 **JWE token**,以任意用户身份进行认证。 ## 🧠 漏洞概述 pac4j 应用程序可能使用以下令牌流程: 1. 用户通过 `/api/auth/login` 进行认证 2. 服务器返回一个 **加密 JWT (JWE)** 3. 客户端将令牌作为 **Bearer token** 发送 4. 服务器解密 JWE 并验证内部 JWT 签名 由于 JWT 解析逻辑处理不当,当内部令牌是 **PlainJWT (未签名令牌)** 时: * `toSignedJWT()` 返回 **null** * 签名验证被 **跳过** * Claims 被视为可信并接受 这使得攻击者能够: * 伪造任意 claims * 提升权限 * 以 **admin** 身份认证 ## ⚠️ 影响 攻击者可以: * 以任意用户身份认证 * 分配任意角色 * 访问受保护的端点 * 实现 **完全权限提升** 无需私钥 —— 仅需通过 JWKS 暴露的 **公钥**。 ## 🧪 概念验证 本仓库提供了一个 **Python PoC**,它可以: * 从 JWKS 端点获取公钥 * 创建未签名的 JWT * 将其封装在 JWE token 内部 * 生成恶意的 Bearer token ## 📦 环境要求 Python 3.x 安装依赖: ``` pip install jwcrypto requests ``` ## 🚀 使用方法 ``` python3 poc.py \ --jwks http://target:8080/api/auth/jwks \ --user admin \ --role ROLE_ADMIN ``` 示例输出: ``` === Malicious JWE Token === eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMTI4R0NNIiwiY3R5IjoiSldUIn0... ``` 使用方式: ``` Authorization: Bearer ``` ## ⚠️ 免责声明 本仓库仅用于 **教育和研究目的**。 请勿在未经授权的情况下对系统使用此代码。 ## 👨‍💻 作者 Ali Hussainzada 应用安全研究员 | 漏洞猎人
标签:alg:none攻击, CISA项目, CVE-2026-29000, JWE注入, JWKS利用, JWT认证绕过, Maven, pac4j, PlainJWT漏洞, Python PoC, Web安全, 协议分析, 安全漏洞, 权限提升, 漏洞验证, 蓝队分析, 越权访问, 身份伪造, 软件清单, 逆向工具