Skip to main content

Bouncy Castle Java EUVDEUVD-2026-92004

| CVE-2026-18040 MEDIUM
Observable Timing Discrepancy (CWE-208)
2026-10-03 bcorg GHSA-rxw8-22c7-wgq6
5.9
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Achieve co-residency or timing observation of HQC service
  2. Delivery
    Trigger repeated decapsulation operations
  3. Exploit
    Measure cache-line access or decapsulation timing
  4. Execution
    Correlate leakage with secret-dependent sampler/table access
  5. Impact
    Recover HQC private key material

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V6 - Authentication Timing attack prevention
Exploitation Conditions

The target must actually use Bouncy Castle for Java's HQC post-quantum KEM (versions before 1.86) for encapsulation/decapsulation - this is the decisive prerequisite and sharply limits the exposed population, since HQC is a newly standardized algorithm with minimal production adoption. Exploitation additionally requires the attacker to observe microarchitectural cache behaviour (realistically via code co-resident on the same physical CPU/host, e.g. shared-tenancy environments) or to precisely measure decapsulation timing across many operations; the sampler re-expands the secret key from its seed on every decapsulation, which aids repeated measurement. Limiting factors per the CVSS 4.0 vector: local attack vector (AV:L), high attack complexity (AC:H), and a present-type attack requirement (AT:P) meaning many controlled measurements under specific conditions are needed; isolated single-tenant hardware largely neutralizes the cache channel.

Impact

This is a genuine cryptographic weakness but a comparatively low-urgency operational priority. The only CVSS vector supplied is CVSS 4.0 (5.9, Medium): AV:L/AC:H/AT:P/PR:N/UI:N with VC:H and VI/VA:N - meaning local vector, high attack complexity, a specific attack requirement (AT:P), no privileges or user interaction, and a confidentiality-only impact (HQC private-key recovery). CWE-208 (observable timing/microarchitectural discrepancy) is consistent with the description's two side channels (GF(2^8) table lookups creating operand-dependent cache-line access, plus a data-dependent fixed-weight sampler). No EPSS score, no CISA KEV listing, and no POC indicator are present in the input, so by the precision rules this is 'no public exploit identified at time of analysis.' The signals are internally consistent rather than conflicting: a local/high-complexity side channel yielding key disclosure legitimately lands in the Medium band and is NOT a mass-exploitation threat. The practical caveat is that side-channel severity is highly deployment-dependent - on shared-tenancy or co-resident hardware the cache channel is materially more realistic than the Medium score suggests, while on isolated single-tenant hosts it is largely theoretical. EPSS is absent (not low), so no probabilistic exploitation estimate can be asserted.

Exploit ScenarioDerived

An attacker running co-resident code on the same physical host as a service that uses Bouncy Castle's HQC KEM (e.g. a shared cloud tenant or a local unprivileged process) observes cache-line access patterns during repeated decapsulations - each of which re-expands the secret key from its seed - and over many samples reconstructs information about the HQC private key. Alternatively, a remote-ish attacker who can precisely time many decapsulation operations exploits the sampler's early-exit/secret-indexed store to leak key-derived data. No public exploit code is identified at time of analysis, and the high attack complexity (AC:H/AT:P) reflects the many precise measurements required.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 03, 2026

Bouncy Castle for Java before 1.86 leaks secret-derived information from its HQC post-quantum KEM through two side channels, allowing a local attacker who can observe CPU cache behaviour or precisely measure decapsulation timing to recover information about the HQC private key. Only deployments that actually perform HQC encapsulation or decapsulation on the affected library are exposed, and exploitation requires either code co-resident on the same physical host or many carefully controlled timing measurements, so isolated single-tenant hardware largely neutralises the cache channel. There is no public exploit identified at time of analysis; this is a genuine cryptographic weakness but a comparatively low-urgency operational priority, and a vendor fix is available in version 1.86.

RemediationAI

Upgrade Bouncy Castle for Java to version 1.86 or later, which per the vendor advisory replaces the secret-indexed GF(2^8) lookup tables with table-free field arithmetic and makes the fixed-weight support sampler branch-free within a batch of candidates while preserving output and randomness consumption; the fix is visible in upstream commit 283acd81048ec9e951032525279d3b58aaf0bb03 (https://github.com/bcgit/bc-java/commit/283acd81048ec9e951032525279d3b58aaf0bb03) and the advisory is at https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9018040. If upgrading immediately is not possible, the most effective compensating control is to stop using the HQC KEM entirely on affected versions where the application does not require it (for example, prefer the other NIST-selected KEMs already supported by the library), accepting the trade-off that any interoperability or compliance requirement specifically mandating HQC cannot be met until the upgrade lands. Where HQC must remain in use, run decapsulation only on isolated, single-tenant hardware without untrusted co-resident workloads and avoid shared-tenancy/cloud hosts where an attacker could observe cache behaviour, since that removes the cache channel but the trade-off is reduced deployment flexibility and cost; additionally, restrict untrusted code execution and profiling/debug access on hosts performing HQC operations to make high-precision decapsulation timing measurement harder, recognising that this reduces rather than eliminates the timing channel and is not a substitute for patching. No vendor-released patch exists for versions before 1.86 other than upgrading to 1.86, so treat the upgrade as the primary and durable fix.

Affected VersionsENISA

BC-JAVA 1.73 <1.86

Affected Packages

euvd bc_java fix: 1.86

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

This is a side-channel flaw (CWE-208, observable timing discrepancy) in the HQC (Hamming Quasi-Cyclic) key-encapsulation mechanism implemented in Bouncy Castle for Java. HQC is a newly standardised code-based post-quantum KEM, and its implementation made two secret-dependent choices: the GF(2^8) field arithmetic used lookup tables indexed by field elements, so the cache line touched depended on the operand value, and the fixed-weight support sampler terminated its duplicate scan as soon as a collision was found while storing accepted positions at a secret index. Both routines process secret material during encapsulation and decapsulation, and because the sampler re-expands the secret key from its seed on every decapsulation, an attacker gets repeated, reproducible measurement opportunities against the same secret. The cache channel is realistically reachable via code sharing the same physical CPU or host (for example shared-tenancy/cloud environments), while the timing channel requires many precise decapsulation measurements; the CVSS 4.0 vector reflects this with AV:L, AC:H and a present-type attack requirement (AT:P), meaning numerous controlled observations under specific conditions are needed rather than a single-shot attack. The upstream fix removes the tables from the field arithmetic and makes the sampler branch-free within a batch of candidates, leaving output and randomness consumption unchanged; per the independent assessment the vector is CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N, i.e. confidentiality-only impact with no integrity or availability effect.

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 5.9 MEDIUM
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/U:Amber
vuln.today AI 5.1 MEDIUM

Local co-residency/timing observation gives AV:L; many precise measurements justify AC:H; no auth needed (PR:N); only private-key disclosure, so C:H and I:N/A:N.

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

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

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

DescriptionCVE.org

In Bouncy Castle for Java before 1.86, HQC leaked secret-derived data through two side channels: its GF(2^8) arithmetic used lookup tables indexed by field elements, making the cache line touched a function of the operand, and its fixed-weight support sampler left its duplicate scan as soon as a collision was found and stored accepted positions at a secret index. Both run on secret inputs during encapsulation and decapsulation, and the sampler re-expands the secret key from its seed on every decapsulation, so an attacker able to observe cache behaviour or decapsulation timing can recover information about the HQC private key. The field arithmetic is now table-free and the sampler branch-free within a batch of candidates, with output and randomness consumption unchanged.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
High
Bouncy Castle is a ubiquitous Java crypto library, but HQC usage is nascent
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

Vendor StatusVendor

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