In Bouncy Castle for Java before 1.86, the high-level OpenPGP API accepted a data signature made by a signing subkey whose Subkey Binding signature… (CVE-2026-71887)
Bouncy Castle for Java before version 1.86 contains a vulnerability in its high-level OpenPGP API where it incorrectly accepts data signatures made by a signing subkey lacking a required embedded Primary Key Binding signature. This causes misattribution of genuine signatures to attacker-controlled certificates without requiring private key compromise. The low-level API is unaffected.
AI Analysis
Technical Summary
In Bouncy Castle for Java versions prior to 1.86, the high-level OpenPGP API improperly validates data signatures from signing subkeys whose Subkey Binding signatures omit an embedded Primary Key Binding signature and Key Flags subpacket. According to RFC 9580, such embedded signatures are mandatory for subkeys capable of signing. The vulnerability arises because the API's isSigningKey() method inherits signing capability from the primary key when the subkey's binding signature omits Key Flags, while the verifyEmbeddedPrimaryKeyBinding() method does not enforce the embedded signature requirement, leading to a subkey being treated as signing-capable without proper cross-certification. An attacker can exploit this by binding a victim's public signing subkey to their own primary key with a crafted Subkey Binding signature lacking the required embedded Primary Key Binding signature and Key Flags. This results in a relying party accepting a genuine signature as valid but attributing it to the attacker's certificate and identity, causing signature misattribution rather than forgery. The low-level PGPSignature/PGPPublicKeyRing API is not affected. The fix in version 1.86 ensures that subkeys without the required embedded Primary Key Binding signature and Key Flags are not treated as signing-capable.
Potential Impact
This vulnerability allows an attacker to cause misattribution of genuine OpenPGP signatures by binding a victim's public signing subkey to an attacker-controlled primary key without the required embedded Primary Key Binding signature. As a result, relying parties may incorrectly validate a genuine signature but associate it with the attacker's identity, potentially undermining trust in signature verification. No private key material is exposed or recovered, and no signature forgery occurs. The impact is limited to incorrect signature attribution.
Mitigation Recommendations
A fix is available in Bouncy Castle for Java version 1.86 that corrects the validation logic to require the embedded Primary Key Binding signature and Key Flags in Subkey Binding signatures. Users should upgrade to version 1.86 or later to remediate this vulnerability. No other mitigations are indicated by the vendor advisory.
In Bouncy Castle for Java before 1.86, the high-level OpenPGP API accepted a data signature made by a signing subkey whose Subkey Binding signature… (CVE-2026-71887)
Description
Bouncy Castle for Java before version 1.86 contains a vulnerability in its high-level OpenPGP API where it incorrectly accepts data signatures made by a signing subkey lacking a required embedded Primary Key Binding signature. This causes misattribution of genuine signatures to attacker-controlled certificates without requiring private key compromise. The low-level API 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 high-level OpenPGP API improperly validates data signatures from signing subkeys whose Subkey Binding signatures omit an embedded Primary Key Binding signature and Key Flags subpacket. According to RFC 9580, such embedded signatures are mandatory for subkeys capable of signing. The vulnerability arises because the API's isSigningKey() method inherits signing capability from the primary key when the subkey's binding signature omits Key Flags, while the verifyEmbeddedPrimaryKeyBinding() method does not enforce the embedded signature requirement, leading to a subkey being treated as signing-capable without proper cross-certification. An attacker can exploit this by binding a victim's public signing subkey to their own primary key with a crafted Subkey Binding signature lacking the required embedded Primary Key Binding signature and Key Flags. This results in a relying party accepting a genuine signature as valid but attributing it to the attacker's certificate and identity, causing signature misattribution rather than forgery. The low-level PGPSignature/PGPPublicKeyRing API is not affected. The fix in version 1.86 ensures that subkeys without the required embedded Primary Key Binding signature and Key Flags are not treated as signing-capable.
Potential Impact
This vulnerability allows an attacker to cause misattribution of genuine OpenPGP signatures by binding a victim's public signing subkey to an attacker-controlled primary key without the required embedded Primary Key Binding signature. As a result, relying parties may incorrectly validate a genuine signature but associate it with the attacker's identity, potentially undermining trust in signature verification. No private key material is exposed or recovered, and no signature forgery occurs. The impact is limited to incorrect signature attribution.
Mitigation Recommendations
A fix is available in Bouncy Castle for Java version 1.86 that corrects the validation logic to require the embedded Primary Key Binding signature and Key Flags in Subkey Binding signatures. Users should upgrade to version 1.86 or later to remediate this vulnerability. No other mitigations are indicated by the vendor advisory.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-cwf6-pghv-hq93
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-71887"]
- Database Specific Severity
- HIGH
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6ac1397da43b0b3b89d66c89
Added to database: 10/03/2026, 17:21:01 UTC
Last enriched: 10/03/2026, 17:30:31 UTC
Last updated: 10/03/2026, 21:45:56 UTC
Views: 2
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.