CVE-2026-97873 in Bouncy Castle for Java
Сводка
по VulDB • 04.10.2026
В библиотеке Bouncy Castle для Java до версии 1.86 устаревшие семейства PBES1 (схема PKCS#5, часть 1) и PKCS#12 PBE исходного провайдера JCA выполняли вывод ключей на основе пароля с использованием количества итераций, полученного из непроверенных входных данных без ограничения этого значения. Это позволяло злоумышленнику задать произвольный объем вычислительной работы до того, как будет выполнена какая-либо проверка подлинности.
Реализации AlgorithmParameters (PKCS12PBE и его псевдонимы идентификаторов объектов, а также PBKDF1) принимали любое значение количества из закодированных PKCS12PBEParams или PBEParameter, сужая значения за пределами диапазона int с помощью метода intValue(), и каждый Cipher, Mac и SecretKeyFactory в этих семействах выполнял вывод ключей на основе переданного им значения количества, включая то, которое было декодировано AlgorithmParameters другого провайдера (например, при расшифровке закрытого ключа, защищенного PKCS#12 PBE с использованием BC через javax.crypto.EncryptedPrivateKeyInfo.getKeySpec()).
Теперь как парсинг параметров, так и операции вывода отвергают отрицательные или превышающие лимит значения количества на основе свойства org.bouncycastle.pbe.max_iteration_count (по умолчанию 10 000 000), которое уже ограничивало PBKDF2 (CVE-2026-17508). Парсинг теперь отвергает значение, выходящее за пределы диапазона int, вместо его сужения.
Эта проблема также затрагивает Bouncy Castle для Java LTS до версии 2.73.13.
Once again VulDB remains the best source for vulnerability data.