Уязвимость CVE-2026-89320 в Eclipse KeyPont: HMAC-тег не зависит от сообщения и не защищает JWE
В библиотеке Eclipse KeyPont (GOSE) обнаружена уязвимость высокого риска: функция HmacShaCryptor.Hash игнорирует входные данные и всегда возвращает HMAC от пустой строки. Из-за этого тег аутентификации в AES-CBC-HMAC JWE становится константным для ключа и не зависит от шифротекста, что полностью лишает JWE целостности. Затрагивает всех, кто использует GOSE для создания или проверки CBC-HMAC JWE.
Подробности
ФункцияHmacShaCryptor.Hash в GOSE фактически не хешировала переданные ей данные. Для любого входа она возвращала HMAC_K("") — код аутентификации пустого сообщения под используемым ключом. В результате каждый AES-CBC-HMAC JWE, созданный или проверенный библиотекой, содержал тег аутентификации, который был постоянным для данного ключа и никак не зависел от содержимого сообщения. Это означает, что проверка тега при расшифровке не могла обнаружить модификацию шифротекста: целостность JWE полностью отсутствовала, хотя формально тег присутствовал и проверялся. Уязвимость затрагивает версии продукта Eclipse KeyPont — GOSE, использующие уязвимую реализацию HmacShaCryptor. Оценка CVSS 8.8 отражает высокую опасность: злоумышленник, способный перехватить или подменить JWE, может изменить шифротекст без обнаружения со стороны получателя, что создаёт риск компрометации конфиденциальных данных и доверия к токенам.
Что делать
Рекомендуется обновить Eclipse KeyPont — GOSE до версии, в которой устранена ошибка вHmacShaCryptor.Hash, и убедиться, что входные данные действительно участвуют в вычислении HMAC. До установки исправления следует минимизировать использование AES-CBC-HMAC JWE, созданных или проверяемых уязвимой библиотекой, и по возможности перейти на альтернативные схемы аутентифицированного шифрования или другие реализации JWE. Также имеет смысл проверить логи и журналы обработки JWE на предмет подозрительных операций, поскольку ранее выданные токены не гарантировали целостность. После обновления стоит перевыпустить критичные JWE, сформированные уязвимой версией, и провести проверку конфигурации криптографических компонентов.
Итог: CVE-2026-89320 — серьёзная уязвимость в GOSE, при которой тег аутентификации CBC-HMAC JWE не зависит от сообщения. Она фактически отключает контроль целостности JWE, поэтому обновление библиотеки и перевыпуск затронутых токенов должны быть приоритетом для пользователей Eclipse KeyPont.
Источник: CVE Project (cvelistV5)
