
Локальная лаборатория, моделирующая обход аутентификации CVE-2026-29000 JWT/JWE в pac4j-jwt. Предоставляет API для входа, создания токенов и панели управления для практики веб-эксплуатации в Docker-контейнере Java/SparkJava среде.
Лаборатория Java/SparkJava, симулирующая ошибку аутентификации JWT/JWE, связанную с CVE-2026-29000. Приложение работает на порту 4567 и предоставляет API для тестирования легитимного потока входа, создания поддельных токенов и проверки панели управления.
CVE-2026-29000 затрагивает pac4j-jwt в версиях до 4.5.9, 5.7.9 и 6.3.3. Ошибка находится в JwtAuthenticator при обработке зашифрованных JWT/JWE, что позволяет злоумышленнику подделать токен аутентификации в некоторых потоках аутентификации.
Минимальные версии для обновления в зависимости от используемой ветки:
4.x: обновите до 4.5.9 или новее5.x: обновите до 5.7.9 или новее6.x: обновите до 6.3.3 или новееВ корневой папке проекта выполните:
docker compose up --build
После сборки откройте:
http://localhost:4567
Остановка лаборатории:
docker compose down
Сборка образа:
docker build -t cve-2026-29000-lab .
Запуск контейнера:
docker run --rm -p 4567:4567 --name cve-2026-29000-lab cve-2026-29000-lab
Проверка публичного ключа сервера:
curl http://localhost:4567/api/public-key
Перейдите в папку 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
GET / - краткое руководство по шагам демонстрацииPOST /api/login - создание легитимного токенаPOST /api/forge-token - создание токена для демонстрации обходаGET /api/dashboard - проверка токена в заголовке Authorization: Bearer <token>GET /api/public-key - просмотр публичного ключа в формате JWKЛегитимный вход:
curl -X POST http://localhost:4567/api/login \
-H "Content-Type: application/json" \
-d "{\"username\":\"user_lucas\",\"role\":\"user\"}"
Создание поддельного токена:
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
Эта лаборатория предназначена только для обучения и тестирования в локальной среде. Не разворачивайте её публично и не используйте для атаки на системы без разрешения.