Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify application accepting CMS SignedData input
-
DeliveryCraft degenerate SignedData with empty signerInfos SET
-
ExploitEmbed arbitrary payload in the envelope
-
ExecutionSubmit to application verification endpoint
-
PersistverifySignatures() iterates zero signers and returns true
-
ImpactUnsigned content accepted as cryptographically authenticated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires: (1) the target application uses Bouncy Castle's CMSSignedData.verifySignatures() as its primary or sole authenticity check for received CMS/PKCS#7 SignedData - applications using lower-level SignerInformation APIs directly or other libraries are not affected; (2) the attacker can supply a crafted CMS envelope to that code path, e.g., via file upload, API call, or network protocol message carrying signed content. Per the CVSS PR:N rating, no authentication is required on the attacker's side. Exploitation is limited to affected versions of bc-java (before 1.85), bc-lts-java (before 2.73.12), and bc-fja (before the per-series patch versions); counter-signature verification is explicitly unaffected per the vendor commit notes. Applications that independently validate signer count before calling verifySignatures(), or that use getCertificates() for degenerate structures, are not exploitable. |
| Impact | The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VI:H) correctly captures the ceiling risk: zero privileges, zero complexity, network-reachable, and high integrity impact for any affected application using verifySignatures() as a trust boundary. However, actual exploitability is gated on application-level context - specifically whether the target application uses this API as its primary authenticity check and whether an attacker can reach that code path with a crafted CMS envelope. The vulnerability is not listed in CISA KEV and no public exploit code has been identified at time of analysis; EPSS data was not provided in the available intelligence. The urgency rating of Amber (CVSS 4.0 supplemental) indicates elevated but not immediate priority. The tags 'JWT Attack' and 'Information Disclosure' suggest downstream exploitation patterns in applications using CMS for token or credential signing, but these impacts are inferred from context rather than confirmed by the advisory. The integrity-only impact profile (VI:H, VC:N, VA:N) is consistent with a pure signature bypass - no direct data exfiltration or service disruption is implied. |
| Exploit ScenarioDerived | An attacker targeting a firmware update service, document signing platform, or credential validation endpoint that uses CMSSignedData.verifySignatures() constructs a CMS SignedData envelope with an empty signerInfos SET wrapping arbitrary malicious payload. The envelope is submitted to the application's verification endpoint; verifySignatures() iterates zero signers and returns true, causing the application to accept and process the unsigned payload as fully authenticated. No public exploit code has been identified at time of analysis, but the construction is trivial using any standard ASN.1 or CMS library. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
Signature bypass in Bouncy Castle for Java allows any attacker-supplied content wrapped in a zero-signer CMS envelope to pass CMSSignedData.verifySignatures() without any valid cryptographic signature. The method iterates an empty signerInfos SET, falls through to a vacuous return true, and any application using it as its top-level authenticity check silently accepts unsigned attacker-controlled content as authenticated - a classic fail-open flaw (CWE-347). No public exploit has been identified at time of analysis and the vulnerability is not listed in CISA KEV, but the attack primitive is trivially constructible using any standard CMS/PKCS#7 library.
RemediationAI
Upgrade to Bouncy Castle for Java 1.85 or later, Bouncy Castle LTS 2.73.12 or later, or bcpkix-fips 1.0.12 / 2.0.12 / 2.1.12 or later (matching the release series in use). The vendor advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-59639 and the patch commit is at https://github.com/bcgit/bc-java/commit/99ddc6dcc6782e6a76b0dd587c77e62eb7096ad0. If immediate upgrade is not feasible, add an explicit pre-check: inspect that the SignerInfos collection returned by getSignerInfos() is non-empty before calling verifySignatures(), and treat an empty set as a hard verification failure. Applications that legitimately process certificate-only (degenerate) SignedData should migrate to getCertificates() rather than verifySignatures() for that code path. Note that the patched behavior change - throwing CMSException instead of returning true - will break any code that silently accepted zero-signer structures for certificate transport, so test affected flows before deploying the upgrade. The patch is confirmed as upstream fix available via commit; a tagged release version should be verified against the vendor advisory before deployment.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Cryptographic Message Syntax (RFC 5652) defines SignedData structures where the signerInfos SET contains one or more SignerInfo entries, each representing a verifiable signature. RFC 5652 also permits a degenerate SignedData with an empty signerInfos SET, intended solely for certificate transport - not content authentication. Bouncy Castle's CMSSignedData.verifySignatures() iterates over the signerInfos collection; when the collection is empty, no iteration occurs and the method falls through to return true, treating the absence of any signature as successful verification. This is a textbook instance of CWE-347 (Improper Verification of Cryptographic Signature). Affected libraries identified via CPE are: Legion of the Bouncy Castle bc-java (cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java:*), bc-lts-java (LTS variant, cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-lts-java:*), and bc-fja (FIPS-certified pkix variant, cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-fja:*). The fix, confirmed in commit 99ddc6d, changes the behavior to throw CMSException('no signers present in SignedData') when the signer set is empty; counter-signature verification is explicitly unaffected.
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:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/U:Amber
Network-reachable API, no privileges or user interaction required; integrity-only impact as attacker bypasses signature verification with no confidentiality or availability consequence.
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.85, CMS verifySignatures returns true for SignedData with zero signers. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bcpkix-fips 1.0.12 (1.0.X series), 2.0.12 (2.0.X series) and 2.1.12 (2.1.X series).
Executive ViewAI
Bouncy Castle for Java contains a cryptographic signature verification bypass (CVE-2026-59639, CVSS 8.7) that causes CMSSignedData.verifySignatures() to return true when processing zero-signer envelopes, silently accepting unsigned attacker-controlled content as authenticated. Organizations relying on this library for signature validation face immediate risk of unauthorized content acceptance, integrity compromise, and potential regulatory violations. Patch availability mitigates this risk, but rapid deployment is critical to restore cryptographic trust.
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
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in Bouncy Castle for Java Cryptographic Vulnerabilities
View all 23Oracle 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
Same technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 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 | 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 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.3 | 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-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | 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 Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-52035
GHSA-r3rc-x3pq-jmw7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB