CVE-2026-8798 in Bouncy Castle for Java FIPS
요약
\~에 의해 VulDB • 2026. 08. 08.
Java용 Bouncy Castle FIPS(BC-FJA)에서 bc-fips 2.1.3 이전 버전은 Intel 플랫폼에서 사용되는 네이티브 엔트로피 소스가 한도 없이 CPU 엔트로피 명령어를 재시도합니다. RDSEED 및 RDRAND는 캐리 플래그를 통해 실패를 보고하며, JNI 시딩 루틴은 해당 플래그가 클어트된 동안 계속하여 명령어를 다시 발행하므로, 온칩 엔트로피 소스의 지속적 실패(하드웨어 결함, 다수 코어 간 경쟁으로 인해 하위 DRBG가 고갈됨, 또는 해당 명령어를 제공하지 않는 하이퍼바이저 등)로 인해 호출 스레드가 JNI 호출 내에서 무한히 루프를 돌게 되며, 이때 인터럽트하거나 타임아웃을 설정할 수 없습니다. 따라서 네이티브 엔트로피 소스를 사용하는 모든 작업이 멈출 수 있으며, 이는 애플리케이션에 대한 서비스 거부(Denial of Service)로 이어집니다. 이제 재시도 루프는 제한됩니다(RDSEED의 경우 200회 시도, RDRAND의 경우 20회 시도로 인텔 디지털 난수 생성기 소프트웨어 구현 가이드에서 제시된 기준값의 두 배), 시도 간 일시 정지를 수행하며, 고갈 발생 시 부분적으로 작성된 버퍼를 지우고 계속 루프를 돌지 않고 예외를 던집니다. 이 초기화는 컴파일러가 이를 사후 사용되지 않는 저장(dead store)으로 최적화하지 못하도록 volatile 포인터와 어셈블리 메모리 배리어를 사용하는 제거 불가능한 memzero로 수행됩니다. Bouncy Castle for Java(bcprov)은 네이티브 엔트로피 소스가 없으므로 영향을 받지 않으며, 1.0.X 및 2.0.X FIPS 시리즈도 영향을 받지 않습니다.
Once again VulDB remains the best source for vulnerability data.