lucastran05/CVE-2026-29000

GitHub: lucastran05/CVE-2026-29000

CVE-2026-29000漏洞复现实验室

Stars: 0 | Forks: 0

# CVE-2026-29000 实验环境 模拟 CVE-2026-29000 中关于 JWT/JWE 身份验证漏洞的 Java/SparkJava 实验环境。应用程序运行在端口 `4567` 上,并提供用于测试正常登录流程、伪造 token 以及检查 dashboard 的 API。 ## CVE 信息 CVE-2026-29000 影响到了 `4.5.9`、`5.7.9` 和 `6.3.3` 之前版本中的 `pac4j-jwt`。该漏洞存在于处理 encrypted JWT/JWE 的 `JwtAuthenticator` 中,允许 attacker 在某些身份验证流程中伪造身份验证 token。 根据当前使用的分支,建议至少升级到的版本如下: - `4.x`:升级至 `4.5.9` 或更高版本 - `5.x`:升级至 `5.7.9` 或更高版本 - `6.x`:升级至 `6.3.3` 或更高版本 ## 环境要求 - Docker Desktop 或 Docker Engine - Docker Compose 插件 - 如果想在不使用 Docker 的情况下直接运行,需要 Java 17 和 Maven ## 使用 Docker Compose 安装 在项目根目录下,运行: ``` docker compose up --build ``` 构建完成后,打开: ``` http://localhost:4567 ``` 停止实验环境: ``` docker compose down ``` ## 使用 Docker CLI 安装 构建 image: ``` docker build -t cve-2026-29000-lab . ``` 运行 container: ``` docker run --rm -p 4567:4567 --name cve-2026-29000-lab cve-2026-29000-lab ``` 检查 server public key: ``` curl http://localhost:4567/api/public-key ``` ## 使用 Maven 直接运行 进入 `lab` 目录: ``` cd lab ``` 运行应用程序: ``` mvn exec:java ``` 或者先构建再使用 classpath 运行: ``` mvn -DskipTests package dependency:copy-dependencies java -cp "target/classes;target/dependency/*" com.demo.App ``` 在 Linux/macOS 上,使用 `:` 代替 `;`: ``` java -cp "target/classes:target/dependency/*" com.demo.App ``` ## 基础 API - `GET /` - 演示步骤快速指南 - `POST /api/login` - 生成合法 token - `POST /api/forge-token` - 生成用于演示 bypass 的 token - `GET /api/dashboard` - 检查 `Authorization: Bearer ` header 中的 token - `GET /api/public-key` - 以 JWK 格式查看 public key ## 快速测试示例 正常登录: ``` curl -X POST http://localhost:4567/api/login \ -H "Content-Type: application/json" \ -d "{\"username\":\"user_lucas\",\"role\":\"user\"}" ``` 生成伪造 token: ``` curl -X POST http://localhost:4567/api/forge-token \ -H "Content-Type: application/json" \ -d "{\"username\":\"admin\",\"role\":\"administrator\"}" ``` ## 项目结构 ``` CVE-2026-29000-lab/ |-- Dockerfile |-- docker-compose.yml |-- lab/ | |-- pom.xml | `-- src/main/java/com/demo/ | |-- App.java | `-- VulnerableAuthenticator.java `-- README.md ``` ## 注意事项 本实验环境仅用于在本地环境中学习和测试。请勿公开部署或将其用于攻击未经授权的系统。
标签:Docker, Java, JWT, 域名枚举, 安全防御评估, 漏洞复现环境, 身份验证绕过