Бесплатно Экспресс-аудит сайта:

19.12.2020

В криптографической библиотеке Bouncy Castle обнаружена уязвимость обхода аутентификации

В популярной криптографической библиотеке с открытым исходным кодом Bouncy Castle обнаружена опасная уязвимость ( CVE-2020-28052 ) обхода аутентификации. Ее эксплуатация позволяет злоумышленнику получить доступ к учетным записям пользователей или администраторов.

Как сообщили исследователи безопасности Матти Варанка (Matti Varanka) и Теро Ронтти (Tero Rontti) из Synopsys, проблема содержится в классе OpenBSDBcrypt Bouncy Castle, который реализует алгоритм хеширования паролей Bcrypt. То есть функция Bcrypt.doCheckPassword (), отвечающая за побайтовое сопоставление хэша пароля, имеет некорректную логику.

«Код проверяет индекс символов от 0 до 59 включительно, а не проверяет соответствие символов в позициях от 0 до 59. Пароли с хэшам, не содержащим байтов между 0x00 и 0x3B, соответствуют любому другому хешу пароля, который их не содержит. Прохождение этой проверки означает, что злоумышленнику не нужно совпадение байтов с сохраненным значением хэш-функции», — пояснили эксперты.

Успешное использование уязвимости позволяет подобрать пароль для любой учетной записи пользователя, включая учетную запись администратора, если при проверке пароля приложения на основе хэша используется Bouncy Castle. Хотя для взлома надежных паролей путем брутфорс-атаки потребуется очень много времени, проблема реализации вызывает ошибку в процедуре проверки, позволяя этому процессу продолжаться.

Как отметили эксперты, 20% протестированных паролей могут быть взломаны с первой тысячи попыток в результате использования этой уязвимости. Проблема затрагивает версии Bouncy Castle 1.65 и 1.66. Специалисты сообщили о своих находках разработчикам Bouncy Castle, и проблема была исправлена в версиях 1.67 и выше.

Bouncy Castle — программная библиотека, в которой представлена обширная функциональность из области криптографии. Библиотека включает в себя как реализации большого числа криптографических функций, так и поддержку стандартных высокоуровневых криптографических API соответствующих платформ, а также содержит низкоуровневые проприетарные API для более гибкого и эффективного доступа к функционалу.