CVE-2026-71891
Last modified
CVE-2026-71891 is a high-severity vulnerability rated 7.1/10 on the CVSS scale. 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.
Description
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.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| Legion of the Bouncy Castle Inc. | BC-JAVA | >= 1.85, < 1.86 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-71891?
How severe is CVE-2026-71891?
How do I fix CVE-2026-71891?
How Strix Helps
- Same Subject, Wrong User: A Cross-Issuer Account Takeover in n8nStrix found an identity-binding bug in n8n's token-exchange flow enabling account takeover.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-71886In Bouncy Castle for Java before 1.86, the high-level OpenPG…8.2
- CVE-2026-71887In Bouncy Castle for Java before 1.86, the high-level OpenPG…8.2
- CVE-2026-71888In Bouncy Castle for Java before 1.86, the streaming CMS Aut…8.7
- CVE-2026-71889In Bouncy Castle for Java before 1.86, neither copy of PKIXC…8.7
- CVE-2026-7189Insertion of sensitive information into sent data vulnerabil…7.5
- CVE-2026-71890In Bouncy Castle for Java before 1.86, validation of an MLS …8.7
- CVE-2026-71892In Bouncy Castle for Java before 1.86, the opt-in key-size v…6.9
- CVE-2026-71897An improper authorization check in Apache DolphinScheduler a…4.3
- CVE-2026-71898An incorrect authorization check in Apache DolphinScheduler …4.3
- CVE-2026-71899A missing authorization vulnerability exists in the `query-d…6.5
- CVE-2026-71904Multiple DrayTek VigorAP models contain a command injection …7.2
- CVE-2026-71905Multiple DrayTek VigorAP models contain a command injection …7.2
Are you affected by CVE-2026-71891?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
