Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessEstablish DH peer session with static-key server
-
DeliverySend crafted small-order/out-of-range value
-
ExploitServer exponentiates unvalidated element
-
ExecutionRepeat to leak exponent mod small factors
-
PersistReconstruct private key via CRT
-
ImpactDecrypt traffic or impersonate server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires the target to use Bouncy Castle's MTI/A0 / DHAgreement key agreement with a STATIC or REUSED DH private key - the small-subgroup confinement attack recovers the private exponent only because the same key processes many crafted peer values. The attacker must be a DH protocol peer able to submit chosen public values (the raw 'message' BigInteger and/or a DHPublicKeyParameters whose overridden getY() returns a weak element such as 1, p-1, or p) across repeated exchanges, then perform CRT reconstruction. Limiting factors: deployments using per-session EPHEMERAL DH keys are not practically exploitable (a single-use exponent is not worth recovering); exploitation is not a single request but an iterative oracle attack; and it only applies to callers of the DHAgreement code path, not to unrelated Bouncy Castle crypto. No user interaction or authentication to the DH exchange itself is required. |
| Impact | Signals are mixed and require judgement. The published CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N, score 9.3) rates this critical with no attack complexity or requirements, but that conflicts with the actual mechanics: a small-subgroup confinement / invalid-curve-style attack that recovers a private key requires the local key to be STATIC or REUSED and typically many crafted exchanges plus CRT reconstruction - real prerequisites the base vector's AC:L/AT:N does not reflect. I independently assess higher attack complexity (see assessed vectors). There is no CISA KEV entry and no POC referenced, so this is a serious cryptographic weakness but not evidence of active exploitation. EPSS was not provided in the input, so no exploitation-probability estimate is available. Net: high-priority for any deployment using Bouncy Castle DHAgreement with long-term/static DH keys; lower practical urgency where only ephemeral, per-session DH keys are used, since single-use keys are not meaningfully recoverable. |
| Exploit ScenarioDerived | A server uses Bouncy Castle's DHAgreement with a long-term (static) DH private key. A malicious client repeatedly initiates key agreements sending crafted peer values such as 1, p-1, or p, each leaking the server's private exponent modulo a small factor; the attacker then combines the residues via CRT to reconstruct the full static private key and decrypt or impersonate traffic. No POC is referenced in the available data, and exploitation requires many crafted exchanges rather than a single request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
Private key recovery in Bouncy Castle for Java (bc-java before 1.85, bc-lts-java before 2.73.12) affects the DH agreement code path, where a peer-supplied public value is exponentiated with the local private key without full range/subgroup validation. A malicious protocol peer can submit small-order or out-of-range Diffie-Hellman elements to mount a small-subgroup confinement attack and, when the local private key is static/reused, gradually recover it via CRT - enabling decryption and impersonation. No public exploit identified at time of analysis; the fix is a vendor-released patch and the vulnerability is not listed in CISA KEV.
RemediationAI
Vendor-released patch: upgrade bc-java to 1.85 or later, and bc-lts-java to 2.73.12 or later, per the advisory at https://github.com/bcgit/bc-java/wiki/CVE-2026-59650 (fix commit daeaae9d7075d04f40812e68671ebf4c777b5148); SUSE users should apply their distribution's updated Bouncy Castle package. Until patched, the most effective compensating control is to avoid static/reused DH private keys in any code path using DHAgreement - generate a fresh ephemeral DH key pair per agreement so a recovered exponent has no lasting value (trade-off: extra key-generation cost per handshake). Where you cannot upgrade, avoid accepting DHPublicKeyParameters subclasses from untrusted sources and reject peer public values that fall outside the (1, p-1) range or lie in small subgroups before calling calculateAgreement. Prefer well-validated named DH groups or migrate to ECDH/X25519 agreements not affected by this code path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is Bouncy Castle's Diffie-Hellman key agreement (the commit touches org.bouncycastle.crypto.agreement.DHAgreement, associated in the advisory with MTI/A0-style agreement). In classic ephemeral DH both sides contribute fresh randomness, but MTI/A0 and static-DH modes reuse a long-term private key. The root cause maps to CWE-20 (Improper Input Validation): calculateAgreement raised BOTH peer-controlled inputs - the DHPublicKeyParameters 'pub' and the raw BigInteger 'message' - to the local private exponent, but validated only a subset. Because DHPublicKeyParameters.getY() is virtual, a subclass can pass construction-time checks with a dummy Y and then return an unvalidated weak value, and the raw 'message' BigInteger was never range-checked at all. Elements such as 1, p-1 (order 2), and p itself lie outside the safe (1, p-1) interval or generate a tiny subgroup, leaking the private exponent modulo small factors that CRT then reassembles. The fix re-validates both values by reconstructing them through DHPublicKeyParameters (which enforces the DH public-value range/subgroup checks) unless 'pub' is exactly the base type.
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
Sources disagree (Medium–Critical)CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/U:Amber
Network peer needs no auth (PR:N) but exploitation demands a static/reused key and many crafted exchanges plus CRT (AC:H); key recovery yields high confidentiality and integrity impact, no availability effect.
vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.85, MTI/A0 DH agreement exponentiates unvalidated peer value. This issue also affects Bouncy Castle for Java LTS before 2.73.12.
Articles & Coverage 1
Executive ViewAI
Bouncy Castle for Java (bc-java before 1.85 and bc-lts-java before 2.73.12) contains a critical vulnerability that could allow attackers to decrypt sensitive data and impersonate legitimate users in encrypted communications. Organizations using these libraries in any capacity face potential exposure of confidential information and loss of authentication integrity. While no public exploit is currently available, immediate patching is essential to mitigate this severe risk.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in Bouncy Castle for Java Cryptographic Vulnerabilities
View all 23Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
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
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-20 – Improper Input Validation
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP2 | Affected |
| SUSE Linux Enterprise Desktop 15 SP3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-52024
GHSA-ghgq-7g74-28wp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB