8.7
HIGH CVSS 4.0
CVE-2026-8798
Native entropy source retries the CPU entropy instructions without limit
Description

In Bouncy Castle for Java FIPS (BC-FJA) before bc-fips 2.1.3, the native entropy source used on Intel platforms retried the CPU entropy instructions without any bound. RDSEED and RDRAND report failure through their carry flag, and the JNI seeding routine spun re-issuing the instruction for as long as that flag stayed clear, so a persistent failure of the on-chip entropy source - whether from a hardware fault, from the underlying DRBG being exhausted by contention across many cores, or from a hypervisor that does not provide the instruction - left the calling thread looping indefinitely inside the JNI call, where it could be neither interrupted nor timed out. Any operation drawing from the native entropy source could therefore hang, denying service to the application. The retry loops are now bounded (200 attempts for RDSEED and 20 for RDRAND, twice the baselines given in Intel's Digital Random Number Generator software implementation guide), pausing between attempts and, on exhaustion, clearing any partially written buffer and throwing rather than continuing to spin. The clear is performed by an un-elidable memzero, which uses a volatile pointer and an assembly memory barrier so that a compiler cannot optimise the erase away as a dead store. Bouncy Castle for Java (bcprov) is not affected, as it has no native entropy source; the 1.0.X and 2.0.X FIPS series are not affected.

INFO

Published Date :

Aug. 8, 2026, 1:16 a.m.

Last Modified :

Oct. 24, 2026, 1:10 p.m.

Remotely Exploit :

Yes !

Source :

91579145-5d7b-4cc5-b925-a0262ff19630
Affected Products

The following products are affected by CVE-2026-8798 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Bouncycastle bouncy_castle_for_java
CVSS Scores
The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and displays CVSS scores from various sources for each CVE.
Score Version Severity Vector Exploitability Score Impact Score Source
CVSS 134c704f-9b21-4f2e-91b3-4a467353bcc0
CVSS 4.0 HIGH 91579145-5d7b-4cc5-b925-a0262ff19630
CVSS 4.0 HIGH 91579145-5d7b-4cc5-b925-a0262ff19630
Solution
Update Bouncy Castle FIPS to version 2.1.3 or later to fix indefinite thread looping.
  • Update Bouncy Castle FIPS to version 2.1.3 or later.
  • Apply patches if available for older versions.
  • Ensure the system's entropy source is functioning correctly.
  • Verify the DRBG is not exhausted.
References to Advisories, Solutions, and Tools

Here, you will find a curated list of external links that provide in-depth information, practical solutions, and valuable tools related to CVE-2026-8798.

URL Resource
https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%908798
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-8798 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-8798 weaknesses.

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-8798 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-8798 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • CVE Translated by [email protected]

    Oct. 24, 2026

    Action Type Old Value New Value
    Changed Translation Title: BC-FJA de Legion of the Bouncy Castle Inc., Description: En Bouncy Castle para Java FIPS (BC-FJA) antes de bc-fips 2.1.3, la fuente de entropía nativa utilizada en plataformas Intel reintentaba las instrucciones de entropía de la CPU sin límite alguno. RDSEED y RDRAND informan de fallos a través de su bandera de acarreo, y la rutina de siembra JNI seguía reemitiendo la instrucción mientras esa bandera permaneciera clara, por lo que un fallo persistente de la fuente de entropía en el chip -ya sea por un fallo de hardware, por el agotamiento del DRBG subyacente debido a la contención entre muchos núcleos, o por un hipervisor que no proporciona la instrucción- dejaba el hilo llamador en un bucle indefinido dentro de la llamada JNI, donde no podía ser ni interrumpido ni se le podía agotar el tiempo de espera. Cualquier operación que se nutriese de la fuente de entropía nativa podía, por lo tanto, colgarse, denegando el servicio a la aplicación. Los bucles de reintento ahora están limitados (200 intentos para RDSEED y 20 para RDRAND, el doble de las líneas base dadas en la guía de implementación de software del Generador de Números Aleatorios Digitales de Intel), haciendo pausas entre intentos y, al agotarse, limpiando cualquier búfer parcialmente escrito y lanzando una excepción en lugar de seguir en bucle. La limpieza se realiza mediante un memzero no eludible, que utiliza un puntero volátil y una barrera de memoria de ensamblador para que un compilador no pueda optimizar el borrado como un almacenamiento muerto. Bouncy Castle para Java (bcprov) no se ve afectado, ya que no tiene una fuente de entropía nativa; las series FIPS 1.0.X y 2.0.X no se ven afectadas. Title: BC-FJA de Legion of the Bouncy Castle Inc., Description: En Bouncy Castle para Java FIPS (BC-FJA) antes de bc-fips 2.1.3, la fuente de entropía nativa utilizada en plataformas Intel reintentaba las instrucciones de entropía de la CPU sin límite alguno. RDSEED y RDRAND informan de fallos a través de su bandera de acarreo, y la rutina de siembra JNI seguía reemitiendo la instrucción mientras esa bandera permaneciera clara, por lo que un fallo persistente de la fuente de entropía en el chip -ya sea por un fallo de hardware, por el agotamiento del DRBG subyacente debido a la contención entre muchos núcleos, o por un hipervisor que no proporciona la instrucción- dejaba el hilo llamador en un bucle indefinido dentro de la llamada JNI, donde no podía ser ni interrumpido ni se le podía agotar el tiempo de espera. Cualquier operación que se nutriese de la fuente de entropía nativa podía, por lo tanto, colgarse, denegando el servicio a la aplicación. Los bucles de reintento ahora están limitados (200 intentos para RDSEED y 20 para RDRAND, el doble de las líneas base dadas en la guía de implementación de software del Generador de Números Aleatorios Digitales de Intel), haciendo pausas entre intentos y, al agotarse, limpiando cualquier búfer parcialmente escrito y lanzando una excepción en lugar de seguir en bucle. La limpieza se realiza mediante un memzero no eludible, que utiliza un puntero volátil y una barrera de memoria de ensamblador para que un compilador no pueda optimizar el borrado como un almacenamiento muerto. Bouncy Castle para Java (bcprov) no se ve afectado, ya que no tiene una fuente de entropía nativa; las series FIPS 1.0.X y 2.0.X no se ven afectadas.
  • CVE Translated by [email protected]

    Oct. 23, 2026

    Action Type Old Value New Value
    Added Translation Title: BC-FJA de Legion of the Bouncy Castle Inc., Description: En Bouncy Castle para Java FIPS (BC-FJA) antes de bc-fips 2.1.3, la fuente de entropía nativa utilizada en plataformas Intel reintentaba las instrucciones de entropía de la CPU sin límite alguno. RDSEED y RDRAND informan de fallos a través de su bandera de acarreo, y la rutina de siembra JNI seguía reemitiendo la instrucción mientras esa bandera permaneciera clara, por lo que un fallo persistente de la fuente de entropía en el chip -ya sea por un fallo de hardware, por el agotamiento del DRBG subyacente debido a la contención entre muchos núcleos, o por un hipervisor que no proporciona la instrucción- dejaba el hilo llamador en un bucle indefinido dentro de la llamada JNI, donde no podía ser ni interrumpido ni se le podía agotar el tiempo de espera. Cualquier operación que se nutriese de la fuente de entropía nativa podía, por lo tanto, colgarse, denegando el servicio a la aplicación. Los bucles de reintento ahora están limitados (200 intentos para RDSEED y 20 para RDRAND, el doble de las líneas base dadas en la guía de implementación de software del Generador de Números Aleatorios Digitales de Intel), haciendo pausas entre intentos y, al agotarse, limpiando cualquier búfer parcialmente escrito y lanzando una excepción en lugar de seguir en bucle. La limpieza se realiza mediante un memzero no eludible, que utiliza un puntero volátil y una barrera de memoria de ensamblador para que un compilador no pueda optimizar el borrado como un almacenamiento muerto. Bouncy Castle para Java (bcprov) no se ve afectado, ya que no tiene una fuente de entropía nativa; las series FIPS 1.0.X y 2.0.X no se ven afectadas.
  • CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0

    Aug. 10, 2026

    Action Type Old Value New Value
    Added SSVC {'id': 'CVE-2026-8798', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'yes'}, {'technicalImpact': 'partial'}], 'version': '2.0.3', 'timestamp': '2026-08-10T16:25:32.762419Z'}
  • New CVE Received by 91579145-5d7b-4cc5-b925-a0262ff19630

    Aug. 08, 2026

    Action Type Old Value New Value
    Added Affected [{'vendor': 'Legion of the Bouncy Castle Inc.', 'product': 'BC-FJA', 'versions': [{'status': 'affected', 'version': '2.1.0', 'lessThan': '2.1.3', 'versionType': 'maven'}], 'platforms': ['x86', 'x86-64'], 'packageURL': 'pkg:maven/org.bouncycastle/bc-fips', 'packageName': 'bc-fips', 'programFiles': ['rand_jni.c', 'NativeEntropySource'], 'collectionURL': 'https://www.bouncycastle.org/download/bouncy-castle-java-fips/', 'defaultStatus': 'unaffected'}]
    Added Description In Bouncy Castle for Java FIPS (BC-FJA) before bc-fips 2.1.3, the native entropy source used on Intel platforms retried the CPU entropy instructions without any bound. RDSEED and RDRAND report failure through their carry flag, and the JNI seeding routine spun re-issuing the instruction for as long as that flag stayed clear, so a persistent failure of the on-chip entropy source - whether from a hardware fault, from the underlying DRBG being exhausted by contention across many cores, or from a hypervisor that does not provide the instruction - left the calling thread looping indefinitely inside the JNI call, where it could be neither interrupted nor timed out. Any operation drawing from the native entropy source could therefore hang, denying service to the application. The retry loops are now bounded (200 attempts for RDSEED and 20 for RDRAND, twice the baselines given in Intel's Digital Random Number Generator software implementation guide), pausing between attempts and, on exhaustion, clearing any partially written buffer and throwing rather than continuing to spin. The clear is performed by an un-elidable memzero, which uses a volatile pointer and an assembly memory barrier so that a compiler cannot optimise the erase away as a dead store. Bouncy Castle for Java (bcprov) is not affected, as it has no native entropy source; the 1.0.X and 2.0.X FIPS series are not affected.
    Added CVSS V4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Amber
    Added CWE CWE-835
    Added Reference https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%908798
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.