Skip to main content

BC-FJA EUVDEUVD-2026-54725

| CVE-2026-8798 HIGH
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-08-08 bcorg GHSA-v6w3-qrh8-qccc
8.7
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Application receives request requiring crypto operation
  2. Delivery
    bc-fips 2.1.x calls native JNI entropy source
  3. Exploit
    RDSEED/RDRAND fails persistently (hypervisor withholds or HW fault)
  4. Install
    JNI loop retries without bound
  5. C2
    Thread hangs indefinitely inside JNI call
  6. Execute
    Thread pool exhausted
  7. Impact
    Application denies service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The vulnerability requires all of the following to be simultaneously true: the application must use bc-fips in the 2.1.x series strictly before version 2.1.3 (bc-fips 1.0.x, bc-fips 2.0.x, and the standard bcprov library are explicitly NOT affected); execution must occur on an Intel x86 platform where the JNI native entropy path is active; and one of three persistent entropy failure conditions must be present - a hardware fault in the on-chip entropy source, extreme DRBG exhaustion from simultaneous entropy requests across many CPU cores, or a hypervisor or VMM that does not forward RDRAND and RDSEED instructions to the guest. The third condition (hypervisor non-forwarding) is the most operationally common and requires no attacker-side action beyond being co-resident on or having network access to the affected VM. Exploitation is strictly limited to denial of service; no code execution, credential theft, or cryptographic material exposure is achievable via this path. Once triggered, the hung thread cannot be recovered by Java interrupt signals or application-level timeouts because the spin occurs entirely within the native JNI call frame.

Impact

The vendor-supplied CVSS 4.0 score of 8.7 with vector AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N reflects pure availability impact assessed at low attack complexity, which is defensible in the worst-case hypervisor scenario: if the VMM never forwards RDRAND/RDSEED to the guest, entropy failure is immediate and deterministic on every call, requiring zero attacker sophistication. No EPSS score was provided in the available intelligence, and the vulnerability is absent from CISA KEV, indicating no confirmed active exploitation at time of analysis. Real-world risk is strongly deployment-dependent: in cloud or VM environments where the hypervisor withholds Intel entropy instruction forwarding - a configuration found in some KVM, Xen, and older cloud provider setups - any application thread triggering native entropy seeding hangs permanently, making this a reliable, unauthenticated DoS vector against any network-exposed API. On bare-metal Intel hardware with functional on-chip entropy, the risk is meaningfully lower, as triggering the condition requires either a hardware fault or sustained DRBG exhaustion under extreme multi-core load. Scope is explicitly narrowed to bc-fips 2.1.x before 2.1.3; bcprov and the bc-fips 1.0.x and 2.0.x series are not affected, limiting the exposure surface to organizations specifically using the 2.1.x FIPS-certified release line.

Exploit ScenarioDerived

In a cloud environment where the hypervisor does not forward RDRAND/RDSEED to the guest VM, any inbound request to a bc-fips 2.1.x application that triggers a cryptographic operation requiring entropy seeding - such as a TLS handshake initiation, server-side key generation, or session token creation - causes the handling thread to spin permanently inside the JNI call with no recovery possible from the Java side. No exploit code, credentials, or privileged network position are required; a remote unauthenticated attacker need only send enough such requests to exhaust the application's thread pool, taking the service offline within seconds depending on pool size.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 08, 2026

Unbounded retry loops in BC-FJA's JNI native entropy layer cause calling threads to hang indefinitely when Intel RDSEED or RDRAND instructions persistently fail, producing a non-interruptible thread-level denial of service in any Java FIPS application backed by bc-fips 2.1.x before 2.1.3. The affected JNI seeding routine re-issues the CPU entropy instruction without any iteration limit whenever the carry flag signals failure - a condition reproducible by hardware entropy source faults, DRBG exhaustion under heavy multi-core contention, or hypervisors that do not forward these Intel instructions to guest VMs. No public exploit code has been identified and the vulnerability is not listed in CISA KEV, but the conditions are routinely present in virtualized environments where hypervisors commonly withhold RDRAND/RDSEED forwarding, making this a realistic operational risk for enterprise Java FIPS deployments in cloud or VM-based infrastructure.

RemediationAI

Upgrade to bc-fips 2.1.3 or later, which introduces bounded retry counts (200 for RDSEED, 20 for RDRAND), inter-attempt pauses, and exception throwing on exhaustion, eliminating the infinite spin. The vendor advisory is available at https://github.com/bcgit/bc-java/wiki/CVE-2026-8798. For environments that cannot patch immediately, the most effective compensating control is to verify that the hypervisor or VM platform is configured to expose and forward RDRAND and RDSEED instructions to guest VMs - in KVM this is controlled via the CPU model or explicit feature flags, and in cloud environments this may require selecting a CPU platform that passes through entropy instructions. If the hypervisor cannot be reconfigured, evaluate whether bc-fips allows substituting a software or OS-level entropy source in place of the native JNI source, but note that doing so may alter the FIPS 140 operational mode and compliance posture, requiring review with your certifying body or compliance team. Implementing application-level thread watchdog monitoring that alerts on JNI calls exceeding a time threshold provides detection capability while mitigation is pending, without affecting FIPS posture.

Affected VersionsENISA

BC-FJA 2.1.0 <2.1.3

Affected Packages

maven org.bouncycastle:bc-fips fix: 2.1.3
euvd bc_fja fix: 2.1.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

BC-FJA (Bouncy Castle for Java FIPS) is the FIPS 140-2/140-3 certified variant of the Bouncy Castle cryptographic library for Java, identified by CPE cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-fja:*:*:*:*:*:*:*:*. Unlike the standard bcprov library, BC-FJA includes a JNI (Java Native Interface) layer that directly invokes Intel CPU entropy instructions: RDSEED, which reads from the on-chip hardware entropy source, and RDRAND, which reads from the on-chip DRBG. Both instructions signal failure by clearing the carry flag in the FLAGS register. The root cause is CWE-835 (Loop with Unreachable Exit Condition): the original JNI seeding routine checked the carry flag and, upon detecting failure, immediately re-issued the instruction with no iteration counter, no timeout, and no pause, making the exit condition logically unreachable under a persistent failure state. Because the infinite spin occurs entirely within a JNI call, the JVM's standard thread interruption and timeout mechanisms cannot preempt it. The fix introduced in 2.1.3 bounds retries to 200 attempts for RDSEED and 20 for RDRAND - twice the baselines recommended in Intel's Digital Random Number Generator software implementation guide - adds inter-attempt pauses, throws on exhaustion, and zeros any partially written buffer via an un-elidable memzero using a volatile pointer and assembly memory barrier to prevent compiler dead-store elimination.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (bcorg) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/U:Amber
vuln.today AI 7.5 HIGH

AV:N reflects remotely-triggered entropy calls; AC:L because hypervisor non-forwarding makes failure deterministic on every call; pure availability loss with no C/I impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 08, 2026 - 02:01 EUVD
CVE Published
Aug 08, 2026 - 00:50 cve.org
HIGH 8.7

DescriptionCVE.org

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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 80 maven packages depend on org.bouncycastle:bc-fips (4 direct, 77 indirect)

Ecosystem-wide dependent count for version 2.1.0.

Executive ViewAI

Why It Matters

BC-FIPS versions 2.1.x before 2.1.3 contain an unbounded retry loop in the JNI entropy layer that causes Java FIPS applications to hang indefinitely in virtualized environments lacking hardware entropy instruction forwarding-a condition routinely present in cloud infrastructure. While no public exploit has been identified, this thread-level denial of service directly impacts cryptographic operations critical to compliance-dependent systems in regulated industries.

Business Impact: High
Compensating Controls

Vendor-released patch: bc-fips 2.1.3. Until patched, configure hypervisors to forward Intel RDRAND and RDSEED instructions to guest VMs; however, this control is unavailable in many cloud environments. Monitor thread health in FIPS cryptographic operations for early detection of hangs; alternatively, temporarily run critical FIPS applications on non-virtualized infrastructure.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
FIPS-certified Java crypto library used in regulated enterprise and government environments
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Related Vulnerabilities in Bouncy Castle BC-FJA Cryptographic Engine Flaws

View all 2

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy