Любой пользователь — админ. Коротко о критической дыре в библиотеке pac4j-jwt

Уязвимость CVE-2026-29000 получила 10 баллов по шкале CVSS.


apmizkhsd0kllw99gwje9seo1giljt3w.jpg

В популярной Java-библиотеке аутентификации pac4j-jwt обнаружили критическую уязвимость, которая позволяет злоумышленнику выдавать себя за любого пользователя системы, включая администраторов. Проблема получила идентификатор CVE-2026-29000 и максимальную оценку опасности по шкале CVSS — 10,0.

Дефект выявила команда CodeAnt AI во время анализа изменений в открытом исходном коде проектов. Проверка показала, что удалённый атакующий способен создать поддельный JSON Web Token с произвольными данными и пройти проверку подлинности без доступа к закрытым ключам, паролям или секретам.

В обычной схеме pac4j-jwt защищает токены двумя уровнями. Сначала применяется шифрование, скрывающее содержимое, затем криптографическая подпись подтверждает подлинность данных. Когда сервер получает токен, система сначала расшифровывает внешнюю оболочку, после чего проверяет подпись.

Анализ показал ошибку в обработке токенов без подписи. Если злоумышленник создаёт так называемый PlainJWT — токен без цифровой подписи — и шифрует его публичным RSA-ключом сервера, библиотека не распознаёт объект как подписанный. Во время обработки возникает пустое значение.