0xW1LD/CVE-2026-29000
GitHub: 0xW1LD/CVE-2026-29000
一个Rust编写的CVE-2026-29000漏洞利用工具,通过JWE包装无签名JWT实现pac4j-jwt身份验证绕过。
Stars: 0 | Forks: 0
# CVE-2026-29000 漏洞利用生成器 (Rust)
本仓库包含一个专门的 Rust 实现,用于利用 CVE-2026-29000,这是 pac4j-jwt 中的一个身份验证绕过漏洞。该漏洞源于当 PlainJWT (alg: none) 嵌套在加密的 JWE 容器中时出现的“签名验证跳过”。
## 功能
自动获取 JWKS:直接从 /api/auth/jwks 端点获取目标的公共 RSA 密钥。
构造非安全 JWS:使用管理声明 (ROLE_ADMIN) 构造一个 None 算法的 JWT。
JWE 包装器:使用 RSA-OAEP-256 和 A128GCM 封装恶意的内部 token,以绕过初始的边界过滤。
异步执行:由 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,但如果头部指定了 alg: none,则无法递归验证内部 JWS 的签名。
内层:一个包含 admin 主体且 alg 为 None 的 JWT。
外层:内部 JWT 使用服务器自身的公钥进行加密。
结果:服务器解密该 token,发现其被正确加密,从而在没有检查签名的情况下信任了内部的 payload。
## 免责声明
本工具仅用于教育目的和授权的安全测试(CTF/实验环境)。未经授权访问计算机系统是违法行为。
标签:A128GCM, CISA项目, CSV导出, CTF工具, CVE-2026-29000, HackTheBox, JWE加密, JWS伪造, JWT安全, pac4j-jwt, PoC, RSA-OAEP-256, Rust语言, Tokio, 协议分析, 可视化界面, 安全测试, 异步编程, 攻击性安全, 数字取证, 暴力破解, 权限提升, 漏洞搜索, 签名验证绕过, 网络安全, 自动化脚本, 越权访问, 身份验证绕过, 通知系统, 隐私保护