Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft public key on foreign curve sharing field
-
DeliverySubmit as aggregate verification signer
-
ExploitPass keyValidate subgroup check via forged cofactor
-
ExecutionPoint contributes identity in pairing
-
ImpactAggregate signature accepted with phantom signer
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires the target application to construct an ECPoint on an explicit, non-canonical ECCurve (e.g. via ECCurve.Fp#createPoint) that shares BLS12-381's field characteristic, and to accept that caller-supplied point as an authority-bearing public key passed to BLS12_381BasicScheme.keyValidate / BLSPublicKeyParameters (and any BasicScheme, MessageAugmentation, or ProofOfPossession verify/aggregateVerify built on it). The attacker forges the foreign curve's cofactor to 1 so ECPoint.satisfiesOrder returns true without a real subgroup check. The decisive LIMITING factor: the standard 48-byte compressed-point decoder always supplies the canonical G1 curve and is NOT vulnerable, so applications that only decode compressed points are unaffected; only non-default explicit-curve key handling is reachable. Affected versions are Bouncy Castle for Java before 1.86. |
| Impact | This is a genuine cryptographic authentication-bypass (CWE-347) but a conditional one, not a mass-exploitation event. The vendor CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:P, VI:H only) scores 7.1 and correctly reflects that the only impact is integrity - a forged/phantom signer accepted in an aggregate BLS12-381 signature - with no confidentiality (VC:N) or availability (VA:N) impact. No EPSS score, no CISA KEV listing, and no public exploit were supplied in the input, so there is no signal of active or widespread exploitation; the only exploitation artifact is a demonstration unit test shipped inside the fix commit. The dominant risk-limiting signal is not in the CVSS metrics at all: the vendor explicitly states the flaw is reachable ONLY where an application constructs an ECPoint on an explicit, non-canonical curve and treats it as an authority-bearing key - the standard 48-byte compressed-point decoder always supplies the canonical curve and was never affected. That caveat makes the effective attack surface far narrower than AV:N/PR:N/AC:L alone suggests. Net: a real, patch-worthy correctness defect for the specific population of applications that parse caller-supplied explicit-curve public keys into BLS verification, but a low-urgency item for the typical deployment that only ever decodes canonical compressed points. |
| Exploit ScenarioDerived | An attacker crafts a 'public key' as an ECPoint on a foreign elliptic curve that merely shares BLS12-381's field characteristic, with the curve's cofactor forged to 1 so the prime-order subgroup check passes trivially. The attacker submits this point as one of the public keys in a set used for aggregate signature verification; because the forged point contributes the identity in the target group, the verifier accepts the aggregate as valid even though no signature for that key/message pair was ever produced, inserting a phantom signer. No public weaponized exploit was supplied, though the vendor fix commit includes a unit test demonstrating the rejection of exactly such a point. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Signature-verification bypass in Bouncy Castle for Java before 1.86 lets a phantom signer be accepted in BLS12-381 aggregate signature verification. The faulty BLS12_381BasicScheme.keyValidate() trusts the public key's own ECCurve object during the prime-order subgroup check, so an attacker-supplied ECPoint built on a foreign curve that merely shares BLS12-381's field characteristic - with its cofactor forged to 1 - passes validation despite not being a G1 point; in the pairing implementation such a point contributes the identity in the target group, so an aggregate signature verifies even though it contains no signature for that key/message pair. The issue is reachable only where an application constructs an ECPoint on an explicit, non-canonical curve and accepts it as an authority-bearing key, since the standard 48-byte compressed-point decoder always supplies the canonical curve; no public exploit has been identified at time of analysis, and the assessed impact is high integrity compromise without confidentiality or availability loss (CVSS:4.0 base 7.1, network vector, no privileges required).
RemediationAI
Upgrade Bouncy Castle for Java to 1.86 or later (vendor-released patch; upstream commit c16bcfdce1f96230261b7c2c8c1e044bfc9d1deb), and rebuild/redeploy any application or container image that bundles the bcprov/bcpkix JARs so the patched core library is actually on the classpath - verify the loaded version at runtime, since a stale transitive dependency is the common failure mode. If immediate upgrade is not possible, the most effective compensating control is to stop accepting ECPoints constructed on explicit non-canonical curves from any untrusted source: route all BLS public-key ingestion exclusively through the standard 48-byte compressed-point decoder, which always supplies canonical G1 and is not reachable by this flaw. As a secondary control, port the new isCanonicalCurve logic into the calling application and reject any key whose ECCurve does not report field characteristic Q, a = 0, b = 4, the canonical order and cofactor 1 before calling keyValidate; the trade-off is that legitimate custom key-import paths using alternative curve encodings will start failing and must be migrated to canonical encoding. Downstream verifiers that cannot be patched quickly should treat aggregate signatures from untrusted key sets as untrusted and re-verify each signature individually against individually validated keys, accepting the added verification cost. Refer to the vendor advisory at https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9071891 for the authoritative fix guidance and release notes.
Affected VersionsENISA
Affected Packages
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
BLS12-381 is a pairing-friendly elliptic curve whose G1 group has cofactor 1, so its subgroup membership check reduces to verifying the point satisfies the curve equation and has the right order. In Bouncy Castle's implementation, ECPoint.satisfiesOrder() short-circuits to true when the cofactor of the point's own curve is one, and the point names its own ECCurve object - caller-suppliable data via ECCurve.Fp#createPoint. An attacker can therefore construct a point on a different curve (for example y^2 = x^3 + x over BLS12-381's prime field Q, with order and cofactor forged to 1) whose curve object reports cofactor 1, so the subgroup check passes trivially even though the point is not on G1 at all. Because BLS12-381 pairings map such an off-curve point to the identity in the target group, verifies and aggregateVerifies in BasicScheme, MessageAugmentation and ProofOfPossession - all of which gate on keyValidate via BLSPublicKeyParameters - accept an aggregate signature that contains no contribution from the forged key, admitting a phantom signer. CWE-347 (Improper Verification of Cryptographic Signature) captures the root cause: the validator trusted attacker-controlled metadata (the curve descriptor) instead of validating the curve identity itself. The upstream fix introduces BLS12_381G1.isCanonicalCurve(), which checks that the field characteristic, a = 0, b = 4, group order and cofactor all exactly match canonical G1 before any subgroup test runs, and keyValidate returns false immediately for any non-canonical curve. Test BLS12_381BasicSchemeTest.testKeyValidateRejectsForeignCurveSharingField codifies the rejection of the foreign-curve point; the reporter credited is bshastry@posteo.de via feedback-crypto.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/U:Amber
A crafted public key is accepted over the network with no attacker authentication (PR:N), breaking signature-verification integrity only (I:H, C:N/A:N); no genuine victim interaction is required.
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.86, BLS12_381BasicScheme.keyValidate, and so BLSPublicKeyParameters and every BasicScheme, MessageAugmentation and ProofOfPossession verify and aggregateVerify that gate on it, accepted a public key built on a foreign ECCurve that merely shares BLS12-381's field characteristic. The prime-order subgroup check trusts a point's own curve to name its cofactor, since ECPoint.satisfiesOrder returns true outright when the curve's cofactor is one, so a point on a curve with a different equation and a cofactor forged to one passed keyValidate despite not being a G1 point at all. In BC's pairing implementation such a point contributes the identity in the target group, so an aggregate signature verified against a set of public keys including it is accepted even though it contains no signature for that key and message pair, admitting a phantom signer. keyValidate now first confirms that the point's curve carries exactly the canonical G1 field, equation, order and cofactor before any subgroup check. The issue is reachable only where an application constructs an ECPoint on an explicit, non-canonical curve and accepts it as an authority-bearing key; the standard 48-byte compressed-point decoder always supplies the canonical curve and was never affected.
Articles & Coverage 1
Executive ViewAI
Bouncy Castle for Java before version 1.86 can accept forged BLS12-381 aggregate signatures under narrow application conditions, undermining trust in digitally signed data processed by affected Java services. Leadership should care because any internal or customer-facing system that relies on this library for BLS12-381 signature verification may be exposed to unauthorized transactions, configuration changes, or trust decisions if the vulnerable code path is reachable in production.
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
Oracle 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
Vendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 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-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 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | 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 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | 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 Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
| SUSE Linux Enterprise Server for NVIDIA 16.1 | Affected |
EUVD-2026-92005
GHSA-gggh-4cvh-v637
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB