Skip to main content

Bouncy Castle .NET EUVDEUVD-2026-91227

| CVE-2026-63576 HIGH
Improper Certificate Validation (CWE-295)
2026-10-02 bcorg GHSA-3248-8mh4-pcmr
8.2
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Control name-constrained subordinate CA
  2. Delivery
    Issue cert with crafted SAN URI
  3. Exploit
    Victim performs path validation (bc-csharp <2.7.0)
  4. Execution
    Host mis-extracted, constraint check passes
  5. Impact
    Spoof/impersonate restricted domain

Vulnerability Assessment

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

Exploitation requires a very specific PKI configuration: the victim's certification path validation must rely on bc-csharp (BouncyCastle.NET) before 2.7.0 AND must enforce uniformResourceIdentifier name constraints on a subordinate CA (permitted or excluded URI subtrees per RFC 5280). The attacker must either operate that name-constrained subordinate CA or be able to obtain a certificate from it carrying an attacker-chosen SAN URI. The trigger is a URI whose authority is ambiguated by RFC 3986 components - '@' (userinfo), ':' (port/userinfo separator), or path/query/fragment delimiters - so the string-sliced host differs from the URI's true host. LIMITING FACTORS: deployments that do not use URI-type name constraints, or that have no name-constrained sub-CA in the trust path, are not exploitable; the attacker needs issuance access to a constrained CA, which is why CVSS marks Attack Requirements present (AT:P) despite PR:N.

Impact

This is a genuine but conditional PKI trust-boundary flaw, not a mass-exploitation threat. The provided CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N) scores 8.2 (High) and is internally consistent with the description: the attack is network-reachable (AV:N) and needs no privileges on the relying party (PR:N), but AT:P (Attack Requirements: Present) correctly captures the hard precondition - the attacker must control, or be able to obtain certificates with chosen subjectAltName URIs from, a name-constrained subordinate CA that already sits in a path the victim trusts. Impact is integrity-only (VI:H; VC:N/VA:N) because the bug defeats a trust restriction rather than directly leaking data or crashing a service - a constrained sub-CA can issue certificates the relying party should reject but accepts. No EPSS score, KEV listing, or POC was provided in the input; absence of these is not evidence of safety, but it does mean there is no confirmed active exploitation and no published exploit to weigh. The realistic risk is therefore elevated for environments that actually rely on RFC 5280 URI name constraints to partition a CA hierarchy (e.g. delegated/subordinate CAs restricted to specific domains), and low for the majority of deployments that do not depend on uniformResourceIdentifier constraints. EPSS and KEV data are missing from the input and should be checked before final prioritization.

Exploit ScenarioDerived

An organization delegates a subordinate CA that is name-constrained (permitted/excluded) to issue certificates only for *.partner.example. The sub-CA operator, or an attacker who can obtain a certificate from it, requests a certificate whose SAN is a crafted URI such as https://evil.attacker.test:pwd@partner.example/ or https://partner.example@evil.attacker.test/, where userinfo/path/port characters like '@' or ':' cause ExtractHostFromURL to slice out a host that passes the constraint check while the certificate's effective host is attacker-controlled. The relying party using bc-csharp before 2.7.0 then accepts the certificate for a domain the sub-CA was never authorized to serve. No public exploit identified at time of analysis.

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

Uniform Resource Identifier name-constraint bypass in Bouncy Castle .NET (bc-csharp) before 2.7.0 allows a name-constrained subordinate CA - or anyone able to obtain a certificate with an attacker-chosen subjectAltName URI from that CA - to evade permitted or excluded uniformResourceIdentifier constraints during RFC 5280 certification path validation. Because the PkixNameConstraintValidator helper ExtractHostFromURL slices the host out of the URI string without first isolating the RFC 3986 authority component, a crafted URI containing '@' (userinfo), ':' (port) or path/query/fragment delimiters produces a host value that differs from the URI's true host, so the leaf is judged unconstrained when it should not be; the vendor rates this CVSS 4.0 8.2, exploitation is unauthenticated per the vector (PR:N) but strongly conditional, and no public exploit code has been identified at time of analysis. Deployments that do not rely on bc-csharp for path validation or that never enforce URI-type name constraints on a subordinate CA are not affected.

RemediationAI

Upgrade Bouncy Castle .NET (bc-csharp) to 2.7.0 or later; that release is the vendor-released patch and contains the corrected URI host extraction along with the accompanying trailing-dot and IPv4-mapped IPv6 name-constraint normalizations introduced by commit f196a22bbf7765cc19b0c4f4645c74ea7ad35e09. Confirm the change is actually loaded by checking your package lock or build manifest, since the library is frequently pulled in transitively by other dependencies, and consult the project advisory at https://github.com/bcgit/bc-csharp/wiki/CVE-2026-63576 for the official guidance. Because this is a trust-boundary bug, replacing every copy of the library in the validation path - including older assemblies side-loaded by plugins - matters as much as bumping the direct reference. If immediate upgrade is impossible, the most effective compensating control is to stop enforcing URI-type name constraints on subordinate CAs (or stop issuing sub-CA certificates that carry uniformResourceIdentifier subtrees) until the library is patched, since a path with no URI constraint is not affected; the trade-off is a temporary loss of that restriction, which can be offset by constraining the same subordinate CA with dNSName and iPAddress subtrees that are enforced on other code paths. Where URI constraints must be retained, front the validator with a shim that fully parses each URI per RFC 3986 and rejects or rejects-as-unconstrained any URI whose authority contains userinfo (an '@' anywhere in the authority), an explicit port, or characters that the legacy slicing treated ambiguously, and reject URI SANs whose path, query or fragment components are populated when the constraint is meant to apply to the host alone - these rules are strict and will reject some legitimate URIs, so they should be treated as a stopgap, not a substitute for the 2.7.0 upgrade. Note that no vendor patch-less workaround is documented beyond upgrading, and no public exploit code has been identified at time of analysis.

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

The flaw lives in Bouncy Castle .NET's PKIX name-constraints engine - the PkixNameConstraintValidator class, specifically the URI branch reached from IsUriConstrained via ExtractHostFromURL. Under RFC 5280 section 4.2.1.10 a CA certificate may carry permitted or excluded general-name subtrees (dNSName, rfc822Name, iPAddress, uniformResourceIdentifier, directoryName) that constrain which names a subordinate CA may issue; a conforming validator must compare the presented general name against those subtrees and reject the path on violation. For URI general names the comparison must be made against the host, which per RFC 3986 can only be identified by first tokenizing the URI into its components - scheme, then authority (which itself is userinfo '@' host ':' port), then path, query and fragment. The vulnerable code instead treated the URI as opaque text and string-sliced a candidate host, so a URI such as one carrying embedded userinfo or a port/authority ambiguity yields a slice that does not correspond to the real host, breaking the constraint comparison in either direction (escaping an excluded subtree or failing to fall inside a permitted one). This is CWE-295 (Improper Certificate Validation): the root cause class is canonicalization/parsing mismatch - the validator and the relying party can disagree about which host a URI names. The upstream fix commit f196a22bbf7765cc19b0c4f4645c74ea7ad35e09 corrects the URI path and also hardens adjacent canonicalization in the same class, adding StripTrailingDot so RFC 1034 root-label trailing dots on rfc822Name and dNSName values cannot misalign the per-label compare against a 'example.com'-style constraint, and normalizing IPv4-mapped IPv6 addresses (::ffff:0:0/96 per RFC 4291 section 2.5.5.2) so an address encoded in the 16-byte mapped form cannot escape an 8-byte IPv4 iPAddress constraint via an address-family length mismatch. Those additional changes signal the same underlying weakness - constraint matching performed on unnormalized string or byte representations - and are worth reviewing together with the URI fix. The supplied CPE cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-csharp:*:*:*:*:*:*:*:* identifies the affected package as the Legion of the Bouncy Castle Inc. bc-csharp (BouncyCastle.NET) distribution, with the wildcard version indicating the whole pre-2.7.0 line.

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

Network-reachable trust check with no victim privileges (PR:N), but requires issuance from a name-constrained sub-CA and crafted URI, so AC:H; integrity-only impact (I:H) as a trust restriction is bypassed.

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 (ExtractHostFromURL) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a name-constrained subordinate CA, or anyone able to obtain certificates with chosen subjectAltName URIs from such a CA, to bypass permitted or excluded uniformResourceIdentifier name constraints during certification path validation via a URI whose path, query, fragment or userinfo contains characters such as '@' or ':', because the host was extracted by string slicing without first isolating the RFC 3986 authority component, so the host compared against the constraints could differ from the URI's actual host.

Executive ViewAI

Why It Matters

Bouncy Castle .NET (bc-csharp), a widely used cryptographic library in .NET applications, contains a high-severity flaw that allows attackers to bypass URI name constraints during certificate validation. No public exploit identified at time of analysis, but the vulnerability is unauthenticated and could enable unauthorized access or man-in-the-middle attacks if a subordinate CA issues a crafted certificate. Leadership should prioritize patching to maintain the integrity of certificate-based authentication and prevent potential data breaches.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
popular .NET cryptography library, but only name-constraint users affected
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
High
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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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