CVE-2026-97873 in Bouncy Castle for Java
요약
\~에 의해 VulDB • 2026. 10. 03.
Java용 Bouncy Castle 1.86 이전 버전에서, raw JCA provider의 레거시 PBES1(PKCS#5 scheme 1) 및 PKCS#12 PBE 계열은 신뢰할 수 없는 입력으로부터 가져온 반복 횟수를 제한 없이 사용하여 비밀번호 기반 키 유도(password-based key derivation)를 수행했습니다. 이로 인해 작은 입력이 모든 검증 전에 임의량의 작업을 유발할 수 있었습니다. AlgorithmParameters 구현체(PKCS12PBE 및 해당 OID 별칭, PBKDF1 포함)는 인코딩된 PKCS12PBEParams 또는 PBEParameter에서 어떤 횟수도 허용했으며, intValue()를 사용하여 int 범위를 벗어난 값을 좁혔습니다. 이 계열의 모든 Cipher, Mac 및 SecretKeyFactory는 제공된 횕을 그대로 사용해서 유도를 수행했습니다. 여기에는 다른 provider의 AlgorithmParameters에 의해 디코딩된 값도 포함됩니다(예: javax.crypto.EncryptedPrivateKeyInfo.getKeySpec()가 BC를 사용하여 PKCS#12 PBE로 보호된 개인 키를 복호화할 때). 이제 매개변수 파싱 및 유도 과정은 org.bouncycastle.pbe.max_iteration_count 속성(기본값 10,000,000)에 따라 음수이거나 제한을 초과하는 횟수를 거부합니다. 이 속성은 이미 PBKDF2(CVE-2026-17508)에서 범위를 제한하고 있었으며, 파싱 과정은 int 범위를 벗어난 횟수에 대해 좁히는 대신 이를 거부합니다. 본 이슈는 Java용 Bouncy Castle LTS 2.73.13 이전 버전에도 영향을 미칩니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.