otuva/CVE-2026-29000
GitHub: otuva/CVE-2026-29000
针对pac4j-jwt认证绕过漏洞(CVE-2026-29000)的概念验证工具,通过JWE嵌套PlainJWT实现签名验证绕过。
Stars: 0 | Forks: 0
# CVE-2026-29000:pac4j-jwt 认证绕过 POC
本仓库包含 `pac4j-jwt` (CVE-2026-29000) 中认证绕过漏洞的概念验证 (POC)。该漏洞允许攻击者通过在 JWE (JSON Web Encryption) 容器内嵌套 PlainJWT (使用 `alg: none`) 来绕过签名验证。
## 概述
该攻击利用了服务器的特性:服务器愿意使用其公钥解密 JWE,并随后信任内部的 JWT 而不验证其签名,前提是该 JWT 使用了 `none` 算法。
## 前置条件
请确保已安装 Python 3 以及所需的依赖项:
```
pip install requests jwcrypto
```
## 使用方法
### 1. 生成伪造 Token
使用 `exp.py` 从 JWKS 端点获取目标的公钥,制作一个具有 `ROLE_ADMIN` 权限的恶意 Token,并将其封装在 JWE 中。
```
python3 exp.py --user admin --role ROLE_ADMIN
```
**示例:**
```
python3 exp.py http://localhost:8080
```
### 2. 与 API 交互
获取伪造的 Token 后,使用 `app.py` 与受保护的 API 端点进行交互。
```
python3 app.py
```
**测试特定端点:**
```
python3 app.py http://localhost:8080 --endpoint /api/users
```
## 文件
- `exp.py`:主要的漏洞利用脚本,用于获取 JWKS、制作 PlainJWT 并伪造 JWE。
- `app.py`:用于针对发现的 API 端点 (`/api/dashboard`, `/api/users`, `/api/settings`) 测试伪造 Token 的实用脚本。
## 免责声明
此 POC 仅供教育和授权安全测试目的使用。未经授权访问计算机系统是非法的。
标签:alg-none攻击, CISA项目, CVE-2026-29000, GHAS, Java安全, JWE注入, JWKS, JWT漏洞, pac4j-jwt, POC验证, Web安全, 中间人攻击, 协议分析, 安全测试, 攻击性安全, 权限提升, 消息认证码, 签名验证绕过, 蓝队分析, 认证绕过, 身份欺骗, 逆向工具