Skip to main content

Bouncy Castle C# CVE-2026-103602

| EUVDEUVD-2026-91232 HIGH
Improper Certificate Validation (CWE-295)
2026-10-02 bcorg GHSA-mx2f-845p-2h26
8.2
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Obtain leaf cert from name-constrained intermediate CA
  2. Delivery
    Craft rfc822Name/dNSName/URI host with trailing dot
  3. Exploit
    Present certificate to bc-csharp relying party
  4. Execution
    Trailing dot evades excluded-subtree comparison
  5. Impact
    Certificate accepted, impersonate excluded domain or host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Three concrete prerequisites must hold: (1) the victim relying party uses bc-csharp before 2.7.0 to perform PKIX certification-path validation AND actually enforces Name Constraints with excluded (or permitted) subtrees on an intermediate CA; (2) the attacker controls, or can obtain end-entity certificates from, that name-constrained intermediate CA; and (3) the attacker encodes the target identity as an rfc822Name, dNSName, or uniformResourceIdentifier whose host ends in a trailing dot (e.g. 'victim.example.') so it fails to match the dot-less excluded subtree. Limiting factors that reduce real-world risk: the attack is impossible without access to a name-constrained sub-CA (not a default or universally available position), it only matters where name constraints are the security boundary being trusted, and there is no user interaction or victim-side privilege requirement. This is NOT remote-unauthenticated exploitation against an arbitrary default deployment.

Impact

The input CVSS 4.0 base score is 8.2 (High) with vector AV:N/AC:L/AT:P/PR:N/UI:N and an integrity-only impact (VI:H, VC:N, VA:N), reflecting that successful exploitation lets a forged/impermissible certificate be accepted during PKIX path validation rather than directly leaking or destroying data. The AT:P (attack requirement present) metric is the key signal: exploitation is NOT a generic remote-unauthenticated condition - it requires the attacker to control, or be able to obtain leaf certificates from, a name-constrained intermediate CA, which is a meaningful barrier that narrows this toward targeted rather than opportunistic abuse. No EPSS score, SSVC decision, KEV listing, or POC indicator was provided in the input, so exploitation probability and automatability cannot be quantified - this is a gap, not evidence of low risk. Status is 'no public exploit identified at time of analysis.' Net assessment: this is a legitimate correctness/trust flaw in a trust-decision code path (name constraints are a security control, and this defeats excluded-subtree enforcement), but the practical priority is moderate-to-high ONLY for environments that both use bc-csharp <2.7.0 for certificate path validation and actually rely on name constraints to confine a sub-CA; for everyone else the real-world exposure is limited. Treat the 8.2 as conditional severity, not as a drop-everything network worm.

Exploit ScenarioDerived

An attacker who operates (or can obtain end-entity certificates from) an intermediate CA that is name-constrained to exclude certain domains or mailbox hosts requests a leaf certificate whose rfc822Name, dNSName, or URI host is written with a trailing RFC 1034 root-label dot (e.g. 'bank.com.' instead of 'bank.com'). A relying application using bc-csharp before 2.7.0 compares the name against the excluded subtree without stripping that trailing dot, so the excluded-subtree match fails and the certificate is wrongly accepted, enabling impersonation of a domain/host the sub-CA was never authorized to vouch for. No public proof-of-concept was identified in the provided data, though the fixing commit diff makes the root cause and exploitation primitive explicit.

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 – Oct 02, 2026

Certificates that should be rejected by PKIX name constraints are accepted by Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0, allowing an attacker who controls or can obtain end-entity certificates from a name-constrained intermediate CA to bypass excluded-subtree restrictions for email addresses, DNS names, and URI hosts by appending a trailing dot (e.g., 'victim.example.'), which the vulnerable PkixNameConstraintValidator compared without stripping the RFC 1034 root-label dot. Exploitation requires that the victim relying party performs PKIX path validation with bc-csharp and actually enforces name constraints on that intermediate CA, so this is not remote exploitation of an arbitrary default deployment; the impact is integrity-only (a forged or impermissible certificate is accepted rather than data being leaked or destroyed). No public exploit code was identified at time of analysis, and no confirmed active exploitation (CISA KEV) is associated.

RemediationAI

Upgrade to bc-csharp 2.7.0 or later, which is the vendor-released patch version that removes the trailing-dot mismatch and adds IPv4-mapped IPv6 normalization; the fixes are documented in the vendor advisory at https://github.com/bcgit/bc-csharp/wiki/CVE-2026-103602 and the upstream commits f196a22bbf7765cc19b0c4f4645c74ea7ad35e09, be276e057775a6a674a62e9d9a2583b229978f73, and 75c3c576602886180ed92a63c89419e3bd63b392. If immediate upgrade is not possible, treat name constraints enforced solely by an unpatched bc-csharp validator as untrusted: restrict the set of trusted intermediate CAs to those issued by entities that will not issue certificates for the protected name space, or add a pre-validation wrapper that strips a single RFC 1034 trailing dot from rfc822Name, dNSName, and URI hosts and normalizes IPv4-mapped IPv6 SANs before path validation. The trade-offs are that the wrapper duplicates validator logic and is easy to mis-apply across all code paths, while tightening the trusted-intermediate set can break legitimate issuance hierarchies; disabling name-constraint enforcement outright is not a safe alternative because it removes the very control being bypassed. In all cases, verify that the relying party actually enforces Name Constraints with excluded or permitted subtrees, since the vulnerability is only reachable when that enforcement is the security boundary being relied upon.

Affected VersionsENISA

bc-csharp 0 <2.7.0

Affected Packages

euvd bc_csharp fix: 2.7.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

PKIX certification path validation in bc-csharp is implemented in the PkixNameConstraintValidator class, which enforces Name Constraints extensions on intermediate CAs by comparing subject alternative names (rfc822Name, dNSName, uniformResourceIdentifier) against permitted and excluded subtrees. The root cause is CWE-295 (Improper Certificate Validation): the validator failed to canonicalize names before comparison, so the RFC 1034 sec. 3.1 root-label trailing dot in a fully qualified host name like 'foo.example.com.' caused the host to be tokenized as ['foo','example','com',''] and thus not match the dot-less excluded subtree 'example.com'. The same defect affected the rfc822Name host (e.g., 'user@bank.com.') and the URI host extracted from uniformResourceIdentifier values. The upstream fix adds a StripTrailingDot helper and applies it on both the name and constraint sides for email, DNS, and URI checks; the same commit series also normalizes IPv4-mapped IPv6 addresses (::ffff:0:0/96 per RFC 4291) to IPv4 form before iPAddress constraint matching, so the same canonicalization principle is applied to address-family mismatch. The provided CPE is cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-csharp:*:*:*:*:*:*:*:* and covers all bc-csharp versions before 2.7.0. The input CVSS 4.0 base score is 8.2 (High) with vector AV:N/AC:L/AT:P/PR:N/UI:N and an integrity-only impact (VI:H, VC:N, VA:N), while the independent assessment scores CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N; both vectors agree that no victim-side privileges or user interaction are required and that the only impact is acceptance of an otherwise impermissible certificate, but the AC:H and AT:P components capture the prerequisite that the attacker must control or obtain certificates from a name-constrained intermediate CA and that the relying party must enforce name constraints as a security boundary.

Know when Bc Csharp 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.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Bypass requires controlling a name-constrained intermediate CA and crafting a specific trailing-dot SAN (AC:H), needs no privileges on the relying party (PR:N), and yields integrity-only impact via wrongful certificate acceptance (I:H, C:N, A:N).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
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

Improper certificate validation in PkixNameConstraintValidator in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows an attacker who controls, or can obtain certificates from, a name-constrained intermediate CA to have certificates accepted during PKIX certification path validation for email addresses, DNS names or URI hosts that lie within excluded subtrees applying to that CA, via an rfc822Name, dNSName or uniformResourceIdentifier name whose host ends with a dot, because names and constraints were compared without first removing the RFC 1034 root-label trailing dot, so a fully qualified host name did not match an excluded subtree for the same host written without the dot.

Executive ViewAI

Why It Matters

The Bouncy Castle C

library (bc-csharp) versions before 2.7.0 contain a flaw in PKIX name constraint validation that can lead to acceptance of certificates that should be rejected. Organizations using this library for certificate path validation in .NET applications may face integrity risks if they rely on name constraints to enforce trust boundaries. While exploitation requires specific conditions-an attacker with control over certificates from a name-constrained intermediate CA and a relying party that enforces name constraints-leadership should prioritize inventory and remediation to maintain trust in certificate-based authentication.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
High
Bouncy Castle is a widely deployed C#/.NET cryptography and PKI library
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
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.

CVE-2026-63569 CRITICAL
9.1 Oct 02

Crafted small-order or out-of-range Diffie-Hellman values passed to DHAgreement.CalculateAgreement in Bouncy Castle C# (

CVE-2026-103603 HIGH
8.7 Oct 02

Memory exhaustion in Bouncy Castle C# (bc-csharp) before 2.7.0 allows a remote, unauthenticated attacker to cause a deni

CVE-2026-63566 HIGH
8.7 Oct 02

Memory-exhaustion denial of service in the C# DTLS implementation of Bouncy Castle (bc-csharp) before 2.7.0 lets a remot

CVE-2026-63568 HIGH
8.7 Oct 02

Denial of service in Legion of the Bouncy Castle's C# cryptography library (bc-csharp) before 2.7.0 lets an unauthentica

CVE-2026-103600 HIGH
8.7 Oct 02

Uncontrolled recursion in Bouncy Castle C# (bc-csharp) before 2.7.0 allows unauthenticated remote attackers to crash or

CVE-2026-63574 HIGH
8.7 Oct 02

Denial of service in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows unauthenticated remote attackers to

CVE-2026-103604 HIGH
8.7 Oct 02

Denial of service in the Legion of the Bouncy Castle C# library (bc-csharp) affects all versions before 2.7.0, where qua

CVE-2026-16000 HIGH
8.7 Oct 02

Authentication-tag forgery in Legion of the Bouncy Castle Inc. bc-csharp (Bouncy Castle C#) before 2.7.0 lets a remote,

CVE-2026-63571 HIGH
8.7 Oct 02

Forged X.509 attribute certificates are accepted as valid by Legion of the Bouncy Castle Inc. bc-csharp versions before

CVE-2026-63567 HIGH
8.2 Oct 02

Observable padding discrepancy in the IES/ECIES decryption path of Bouncy Castle C# (bc-csharp) before 2.7.0 lets an una

CVE-2026-63573 HIGH
8.2 Oct 02

RSA PKCS#1 v1.5 key transport in the Bouncy Castle C# (bc-csharp) CMS implementation before 2.7.0 is vulnerable to a Ble

CVE-2026-103601 HIGH
8.2 Oct 02

Information disclosure in Bouncy Castle C# (bc-csharp) versions before 2.7.0 allows unauthenticated remote attackers to

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