
Rust-генератор эксплойтов для CVE-2026-29000 — обхода аутентификации в pac4j-jwt через JWT с alg:none, вложенный в JWE, автоматизирующий получение JWKS и создание токенов для авторизованного тестирования.
Этот репозиторий содержит специализированную реализацию на Rust для эксплуатации CVE-2026-29000 — уязвимости обхода аутентификации в pac4j-jwt. Уязвимость возникает из-за «пропуска проверки подписи», когда PlainJWT (alg: none) вложен в зашифрованный контейнер JWE.
Автоматическое получение JWKS: загружает открытые RSA-ключи цели напрямую с конечной точки /api/auth/jwks.
Создание незащищённого JWS: формирует JWT с алгоритмом None и административными утверждениями (ROLE_ADMIN).
Обёртка JWE: инкапсулирует вредоносный внутренний токен с использованием RSA-OAEP-256 и A128GCM для обхода начальных периметральных фильтров.
Асинхронное выполнение: на базе 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, но не выполняет рекурсивную проверку подписи внутреннего JWS, если в заголовке указано alg: none.
Внутренний слой: JWT с alg: None, содержащий административного субъекта.
Внешний слой: внутренний JWT зашифрован с использованием собственного открытого ключа сервера.
Результат: сервер расшифровывает токен, видит, что он был корректно зашифрован, и доверяет внутренней полезной нагрузке без проверки подписи.
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности (среды CTF/лабораторий). Несанкционированный доступ к компьютерным системам является незаконным.