Oracle исправила неприятную уязвимость в среде Java, серьезность которой невозможно переоценить, по мнению экспертов по безопасности.
Отслеживаемая как CVE-2022-21449, уязвимость была обнаружена в алгоритме цифровой подписи на эллиптических кривых (ECDSA) для Java 15 и более поздних версий. Он позволяет злоумышленникам подделывать сертификаты и подписи TSL, коды двухфакторной аутентификации, учетные данные для авторизации и многое другое.
Как объясняет ArsTechnica, ECDSA — это алгоритм цифровой аутентификации сообщений. Поскольку он генерирует ключи, он часто используется в таких стандартах, как двухфакторная аутентификация FIDO, язык разметки утверждений безопасности, OpenID и JSON.
Подделка SSL-сертификатов и рукопожатий
Уязвимость была впервые обнаружена Нилом Мэдденом из ForgeRock, который сравнил эксплойт с пустым удостоверением личности в научно-фантастическом сериале «Доктор Кто». В сериале человек, смотрящий на удостоверение личности, видит все, что хочет показать владелец, даже если карта пуста.
«Оказалось, что некоторые последние версии Java были уязвимы для подобных уловок при реализации широко используемых подписей ECDSA», — пояснил Мэдден.
«Если вы используете одну из уязвимых версий, злоумышленник может легко манипулировать определенными типами SSL-сертификатов и рукопожатий (что позволяет перехватывать и изменять сообщения), подписанными JWT, утверждениями SAML или маркерами безопасности. Идентификация OIDC и даже сообщения аутентификации WebAuthn — все они используют цифровой эквивалент чистого листа бумаги.
Недостатку была присвоена официальная оценка серьезности 7,5/10, но Мэдден не согласен с оценкой.
«Трудно преувеличить серьезность этой ошибки. Если вы используете подписи ECDSA для любого из этих механизмов безопасности, злоумышленник может тривиально и полностью обойти их, если ваш сервер работает под управлением Java версии 15, 16, 17 или 18 до апрельского критического обновления (CPU) 2022. Для контекста, почти все устройства WebAuthn/FIDO в реальном мире (включая Yubikeys используют подписи ECDSA, а многие провайдеры OIDC используют JWT, подписанные ECDSA), сказал он.
По-видимому, затронуты только версии Java 15 и более поздние, хотя Oracle также перечисляет версии 7, 8 и 11 как уязвимые. Тем не менее, всем клиентам рекомендуется обновить свои терминалы до последней версии.
Via Ars Technica