
Эксплойт для проверки концепции CVE-2026-29000 — обход аутентификации в pac4j-jwt через неподписанный JWT, обёрнутый в JWE, что позволяет повысить привилегии.
Этот инструмент предназначен только для образовательного и этического тестирования безопасности. Я не поддерживаю и не буду поддерживать вредоносные действия в каком-либо виде или форме. Используйте на свой страх и риск.
CVE-2026-29000 — это критическая уязвимость (CVSS 10.0) в библиотеке pac4j-jwt. Она возникает из-за некорректной логики проверки в JwtAuthenticator при обработке вложенных (зашифрованных) токенов.
Ошибка заключается в том, что хотя pac4j корректно расшифровывает токен JWE (JSON Web Encryption) с использованием ключа сервера, он не обеспечивает проверку подписи внутреннего JWT. Это позволяет атакующему обернуть неподписанный JWT (с использованием {"alg": "none"}) внутри валидной обёртки JWE. Сервер расшифровывает JWE, доверяет внутренней полезной нагрузке и предоставляет доступ.
pac4j до 4.5.9, 5.7.9 и 6.3.3.ROLE_ADMIN).Предоставленный скрипт CVE-2026-29000.py автоматизирует следующие шаги:
/api/auth/jwks.alg: none и административными утверждениями.Убедитесь, что у вас установлены необходимые библиотеки Python:
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
Пример:
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
Чтобы смягчить эту уязвимость, выполните следующие действия:
pac4j-jwt до версии 4.5.9, 5.7.9 или 6.3.3 (или выше).JwtAuthenticator явно требует действительную подпись и не допускает алгоритм none.Создано: Cipher1x1