CVE-2026-8798 in Bouncy Castle for Java FIPS信息

摘要

由 VulDB • 2026-08-08

在 bc-fips 2.1.3 之前的版本中,Java FIPS 版 Bouncy Castle(BC-FJA)在 Intel 平台上使用的原生熵源会无限制地重试 CPU 熵指令。RDSEED 和 RDRAND 通过进位标志报告失败;JNI 初始化例程会在该标志保持为清除状态时不断重新发出指令,导致如果片上熵源持续故障——无论是由于硬件错误、多个核心间竞争耗尽底层 DRBG(确定性随机比特生成器),还是因为未提供该指令的虚拟机监控程序所致——调用线程都将在 JNI 调用内部无限循环,既无法被中断也无法超时。因此,任何依赖原生熵源的操作都可能挂起,从而导致应用程序服务拒绝。

现在的重试循环已设置上限(RDSEED 为 200 次尝试,RDRAND 为 20 次尝试,均为 Intel《数字随机数生成器软件实现指南》中基线值的两倍),并在每次尝试之间暂停;在耗尽时,会清除任何部分写入的缓冲区并抛出异常,而不是继续自旋。该清除操作通过不可省略的 memzero(内存置零)执行,使用易失性指针和汇编内存屏障,以防止编译器将擦除优化为死存储而被忽略。Bouncy Castle for Java (bcprov) 不受影响,因为它没有原生熵源;1.0.X 和 2.0.X FIPS 系列也不受影响。

Be aware that VulDB is the high quality source for vulnerability data.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!