Skip to main content

Bouncy Castle Java EUVDEUVD-2026-52033

| CVE-2026-59641 HIGH
Insufficient Verification of Data Authenticity (CWE-345)
2026-08-03 bcorg GHSA-vgvx-fcjw-w4m8
8.7
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Retain private key from revoked/expired signing certificate
  2. Delivery
    Craft S/MIME message with back-dated signingTime attribute
  3. Exploit
    Deliver signed message to target S/MIME processing service
  4. Execution
    SignedMailValidator pins PKIX validation date to attacker-controlled signingTime
  5. Persist
    Certificate passes revocation and expiry checks at back-dated instant
  6. Impact
    Forged signature accepted as valid

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

Exploitation requires three concrete conditions: (1) The target application must invoke Bouncy Castle's SignedMailValidator to process S/MIME signed messages - applications that do not use this specific class are unaffected. (2) The caller must NOT have set an explicit date on the PKIXParameters object passed to the validator; if PKIXParameters.setDate() has been called with a trusted instant (e.g., the current system time), the patched and unpatched behavior are identical for that caller. (3) The attacker must possess a private signing key whose corresponding certificate was at some point accepted by the target's PKIX trust store but has since been revoked or has expired. Limiting factors include: the attacker must have previously held a legitimate, trusted signing certificate; the target must be processing externally-sourced S/MIME messages; and revocation checking (CRL/OCSP) must be configured in the PKIXParameters, since if revocation checking is disabled the vulnerability is moot. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) reflects that no privileges on the target system are required, but the signing-certificate prerequisite is a real-world barrier absent from that score.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H) reflects high integrity impact with no special preconditions on the target system, which is accurate for automated mail-processing pipelines that call SignedMailValidator without pinning a trusted date. However, practical exploitation requires the attacker to control a signing certificate that was at some point trusted by the target's PKIX trust store, which is a non-trivial prerequisite not captured by CVSS. EPSS data is not present in the provided intelligence, and neither KEV status nor a standalone POC document has been identified - the only exploit evidence is the regression test added in the patch commit. Real-world priority should be elevated for any deployment processing S/MIME signatures from external parties (email gateways, document signing workflows, secure messaging), particularly where certificate revocation or expiry enforcement is a compliance requirement. For deployments where PKIXParameters.setDate() is already explicitly set by the calling application, the impact is effectively zero, which the patch confirms by making caller-supplied dates take precedence.

Exploit ScenarioDerived

An attacker whose signing certificate was revoked or has expired obtains or retains the private key material. They craft an S/MIME signed message embedding a CMS signingTime attribute set to a date within the certificate's original validity window - before revocation or expiry - and send it to a target application (e.g., an enterprise email gateway or document verification service) running an unpatched Bouncy Castle SignedMailValidator without a caller-supplied PKIXParameters date. The validator evaluates the certificate chain as of the attacker-controlled date, finds the certificate valid, and accepts the signature despite the certificate being revoked or expired at the actual current time.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 03, 2026

Signature forgery via back-dated signingTime in Bouncy Castle's S/MIME validator allows an attacker holding a revoked or expired signing certificate to have that certificate accepted as valid by unpatched validators. The SignedMailValidator in bc-java before 1.85, bc-lts-java before 2.73.12, and all bc-fja (FIPS) lines before their respective 1.0.7/2.0.7/2.1.7 fixes unconditionally used the signer-asserted CMS signingTime attribute as the PKIX path-validation date, making certificate expiry and revocation checks bypassable. No public exploit or CISA KEV listing exists at time of analysis, but the flaw is architecturally straightforward to exploit by any party that holds or has previously held a Bouncy Castle-validated signing certificate.

RemediationAI

Upgrade to Bouncy Castle for Java 1.85 or later, Bouncy Castle LTS 2.73.12 or later, or the appropriate FIPS line fix release (bcmail-fips/bcjmail-fips 1.0.7, 2.0.7, or 2.1.7 depending on the series in use). Patch commits are available at https://github.com/bcgit/bc-java/commit/2f81b22d559b3a1b026388e1ca78dd547384def8 and https://github.com/bcgit/bc-java/commit/fd89fe918b37fea1c71e95fae50284a325b09721, and the vendor advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-59641. As an immediate workaround before patching, callers can explicitly set a trusted validation instant on the PKIXParameters object passed to SignedMailValidator via PKIXParameters.setDate(new Date()) prior to constructing the validator; on the patched library this takes precedence over signingTime, and on unpatched versions this workaround has no effect - so it is only reliable after upgrading. Deployments that do not use SignedMailValidator (i.e., those not processing S/MIME signed messages) are not affected and require no action.

Affected VersionsENISA

BC-FJA 1.0.0 <1.0.7
BC-FJA 1.0.4 <1.0.7
BC-LTS-JAVA 2.73.0 <2.73.12
BC-JAVA 0 <1.85
BC-FJA 2.0.0 <2.0.7
BC-FJA 2.1.0 <2.1.7

Affected Packages

euvd bc_fja fix: 1.0.7, 2.0.7, 2.1.7
euvd bc_java fix: 1.85
euvd bc_lts_java fix: 2.73.12

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

The CMS (Cryptographic Message Syntax, RFC 5652) signingTime signed attribute is a value asserted by the signer and embedded in the SignerInfo structure; absent a countersignature from a trusted timestamping authority (TSA), it carries no integrity guarantee. Bouncy Castle's SignedMailValidator.validateSignatures() was calling usedParameters.setDate(signTime) unconditionally, pinning the PKIX certificate path validation moment to this attacker-controlled instant. CWE-345 (Insufficient Verification of Data Authenticity) precisely captures the root cause: the library treated an unverified, signer-supplied attribute as authoritative input to a security decision (certificate validity window evaluation). Affected CPEs span all three maintained product lines from Legion of the Bouncy Castle Inc.: cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java, bc-lts-java, and bc-fja. The fix (commit 2f81b22) introduces a caller-precedence check: if PKIXParameters already carries an explicit date, that date is used; only when no date is set does the validator fall back to signingTime.

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

Vendor (bcorg) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

Network-delivered S/MIME message requires no privileges on the target system; integrity impact is high as revoked-certificate signatures are accepted; no confidentiality or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 7.5 HIGH

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

In Bouncy Castle for Java before 1.85, S/MIME validator trusts signer-asserted signingTime for path validation. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bcmail-fips and bcjmail-fips 1.0.7 (1.0.X series), 2.0.7 (2.0.X series) and 2.1.7 (2.1.X series).

Executive ViewAI

Why It Matters

Bouncy Castle S/MIME signature validation libraries before versions 1.85/2.73.12 contain a cryptographic flaw allowing attackers with revoked or expired certificates to forge valid signatures, undermining email and document authentication controls. This affects all organizations using these libraries for digitally signed communications verification.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
High
dominant Java cryptography library, used across enterprise, Android, and OSS ecosystems
Data Quality
8 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor 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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy