Иногда, чтобы обойти защиту, не нужны сложные инструменты. Достаточно сказать системе то, что она не умеет проверять. Именно такую брешь нашли во время клиентского проекта специалисты в библиотеке OpenID Connect Authenticator for Tomcat. Уязвимость позволяла входить в систему с поддельными токенами и любыми данными внутри.
Проблема затрагивает версии OpenID Connect Authenticator for Tomcat с 2.0.0 по 2.5.0, а также актуальное состояние ветки master. Ошибка появилась после одного из изменений в коде и касается проверки цифровой подписи токенов JWT (JSON Web Token), которые используют для подтверждения личности пользователя.
Внутри функции проверки подписи isSignatureValid в классе org.bsworks.catalina.authenticator.oidc.BaseOpenIDConnectAuthenticator разработчики предусмотрели обработку разных алгоритмов подписи. Однако если в заголовке токена указан неизвестный алгоритм, библиотека не отклоняет такой токен. Вместо этого она просто записывает предупреждение в журнал и возвращает значение true, то есть считает подпись корректной.
По сути, если система встречает незнакомый алгоритм в поле alg, она полностью пропускает проверку подписи. Это означает, что злоумышленник может создать собственный токен JWT, указать вымышленный алгоритм и добавить любые данные, например чужой адрес электронной почты, – и приложение примет такой токен как действительный.
Во время проверки исследователи сформировали JWT с заголовком, где в поле alg указали произвольное значение ernw. В полезной нагрузке они прописали стандартные поля, включая срок действия, издателя, получателя и адрес электронной почты. В качестве подписи использовали ту же строку ernw. Получившийся токен успешно прошёл аутентификацию в приложении, которое полагалось на эту функцию при проверке токенов доступа.
Таким образом, любой сервис, использующий уязвимые версии библиотеки для проверки токенов Bearer, рискует тем, что злоумышленник сможет войти в систему без знания секретного ключа или действительной подписи.
Авторы исследования рекомендуют отклонять все токены с неизвестными или неподдерживаемыми алгоритмами подписи и считать такие запросы неавторизованными. Если в коде встречается незнакомый алгоритм, библиотека должна немедленно прерывать обработку и возвращать отказ в доступе.
Исследователь Малте Хайнцельманн сообщил, что пытался связаться с разработчиком библиотеки, компанией Boyle Software Inc., начиная с 8 сентября 2025 года через форму обратной связи. Затем последовали попытки через LinkedIn и электронную почту, а также другие каналы в декабре 2025 и январе 2026 года. Ответа он не получил. Публичное раскрытие информации состоялось 17 февраля 2026 года.
