In Bouncy Castle for Java before 1.86, BLS12_381BasicScheme.keyValidate, and so BLSPublicKeyParameters and every BasicScheme, MessageAugmentation… (CVE-2026-71891)
A vulnerability in Bouncy Castle for Java before version 1.86 allows acceptance of a public key constructed on a non-canonical elliptic curve that shares the BLS12-381 field characteristic but is not a valid G1 point. This flaw affects key validation in BLS12_381BasicScheme and related classes, enabling aggregate signature verification to accept signatures including phantom signers. The issue arises only if an application explicitly constructs ECPoints on non-canonical curves and accepts them as valid keys; the standard compressed-point decoder is unaffected.
AI Analysis
Technical Summary
In Bouncy Castle for Java versions prior to 1.86, the keyValidate method in BLS12_381BasicScheme and related classes incorrectly trusts the curve's cofactor property without verifying the curve's canonical parameters. This allows a crafted public key on a foreign elliptic curve with a forged cofactor of one to pass validation despite not being a valid G1 point. Because the pairing implementation treats such points as contributing the identity element, aggregate signature verification can be tricked into accepting signatures that include phantom signers. The vulnerability is exploitable only when applications construct ECPoints on explicit, non-canonical curves and accept them as authority-bearing keys; the standard 48-byte compressed-point decoder always uses the canonical curve and is not affected. The fix in version 1.86 adds explicit checks that the point's curve matches the canonical G1 field, equation, order, and cofactor before subgroup validation.
Potential Impact
An attacker can craft a public key on a non-canonical curve that passes key validation and contributes the identity element in pairing operations. This allows aggregate signature verification to accept signatures that include phantom signers, potentially undermining signature authenticity checks. However, exploitation requires the application to explicitly construct ECPoints on non-canonical curves and accept them as valid keys. Standard usage with the compressed-point decoder is not vulnerable.
Mitigation Recommendations
Upgrade Bouncy Castle for Java to version 1.86 or later, where keyValidate performs strict checks on the curve parameters before subgroup validation. Applications should avoid constructing ECPoints on explicit, non-canonical curves and should rely on the standard compressed-point decoder, which is not affected by this vulnerability. No other mitigation is required if these conditions are met.
In Bouncy Castle for Java before 1.86, BLS12_381BasicScheme.keyValidate, and so BLSPublicKeyParameters and every BasicScheme, MessageAugmentation… (CVE-2026-71891)
Description
A vulnerability in Bouncy Castle for Java before version 1.86 allows acceptance of a public key constructed on a non-canonical elliptic curve that shares the BLS12-381 field characteristic but is not a valid G1 point. This flaw affects key validation in BLS12_381BasicScheme and related classes, enabling aggregate signature verification to accept signatures including phantom signers. The issue arises only if an application explicitly constructs ECPoints on non-canonical curves and accepts them as valid keys; the standard compressed-point decoder is unaffected.
CVSS v4.0
Affected software
pkg:maven/org.bouncycastle/bcprov-jdk15onRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
In Bouncy Castle for Java versions prior to 1.86, the keyValidate method in BLS12_381BasicScheme and related classes incorrectly trusts the curve's cofactor property without verifying the curve's canonical parameters. This allows a crafted public key on a foreign elliptic curve with a forged cofactor of one to pass validation despite not being a valid G1 point. Because the pairing implementation treats such points as contributing the identity element, aggregate signature verification can be tricked into accepting signatures that include phantom signers. The vulnerability is exploitable only when applications construct ECPoints on explicit, non-canonical curves and accept them as authority-bearing keys; the standard 48-byte compressed-point decoder always uses the canonical curve and is not affected. The fix in version 1.86 adds explicit checks that the point's curve matches the canonical G1 field, equation, order, and cofactor before subgroup validation.
Potential Impact
An attacker can craft a public key on a non-canonical curve that passes key validation and contributes the identity element in pairing operations. This allows aggregate signature verification to accept signatures that include phantom signers, potentially undermining signature authenticity checks. However, exploitation requires the application to explicitly construct ECPoints on non-canonical curves and accept them as valid keys. Standard usage with the compressed-point decoder is not vulnerable.
Mitigation Recommendations
Upgrade Bouncy Castle for Java to version 1.86 or later, where keyValidate performs strict checks on the curve parameters before subgroup validation. Applications should avoid constructing ECPoints on explicit, non-canonical curves and should rely on the standard compressed-point decoder, which is not affected by this vulnerability. No other mitigation is required if these conditions are met.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-gggh-4cvh-v637
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-71891"]
- Database Specific Severity
- HIGH
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6ac1397da43b0b3b89d66c86
Added to database: 10/03/2026, 17:21:01 UTC
Last enriched: 10/03/2026, 17:30:20 UTC
Last updated: 10/04/2026, 02:46:06 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.