CVE-2026-71891
HIGH 7.1In 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.
Severe if exploited (CVSS 7.1), but no known exploitation and low modeled probability. Patch on a normal cadence.
Exploitation likelihood
0.2%chance of exploitation in 30 days · 7th percentile
Impact if exploited
7.1CVSS 4.0 · HIGH
- ConfidentialityNone
- IntegrityHigh
- AvailabilityNone
What an attacker needs
- ✓Access: Reachable over the network — no local access needed
- ✓Privileges: No account or privileges required
- ⚠User interaction: Succeeds with passive user activity
- ✓Complexity: No special conditions — reliably repeatable
- ✓Requirements: No special attack requirements
✓ lowers the bar for an attacker · ⚠ raises it
Proof of concept
No public PoC is currently catalogued.
Search for new PoCs
Search GitHub now — results may be empty or unverified.
Tracked sources are checked daily for recent CVEs, including PoCs published after the original disclosure. A later release appears after a tracked source lists it and a refresh succeeds.
Data snapshot:
Weakness (CWE)
- CWE-347: Improper Verification of Cryptographic Signature
CVSS vector
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
References and research data (JSON)
Vendor product assessments
All currently supported Red Hat products · known not affected
Vendor assessment for this product only.
Reason: vulnerable code not present
Red Hat · CVE-2026-71891 · Updated 2026-10-06T03:00:00+00:00
All CVSS metrics
- HIGH 7.1 v4.0 · CNA Primary
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 - HIGH 7.1 v4.0 · NVD Secondary
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Amber
References
Patches & mitigations
- https://github.com/bcgit/bc-java/commit/c16bcfdce1f96230261b7c2c8c1e044bfc9d1deb CVE record · bcorg · Updated 2026-10-03T08:56:01.050Z
NVD · CVE-2026-71891 · Updated 2026-10-06T14:49:40.823
Advisories
- https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9071891 CVE record · bcorg · Updated 2026-10-03T08:56:01.050Z
NVD · CVE-2026-71891 · Updated 2026-10-06T14:49:40.823 - https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-71891.json Red Hat · CVE-2026-71891 · Updated 2026-10-06T03:00:00+00:00
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-92005 EUVD · EUVD-2026-92005
Technical & other
- https://access.redhat.com/security/cve/CVE-2026-71891 Red Hat · CVE-2026-71891 · Updated 2026-10-06T03:00:00+00:00
- https://www.cve.org/CVERecord?id=CVE-2026-71891 Red Hat · CVE-2026-71891 · Updated 2026-10-06T03:00:00+00:00