Skip to main content

Bouncy Castle C# EUVDEUVD-2026-91229

| CVE-2026-63578 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-02 bcorg GHSA-4583-5v2w-p3vq
7.1
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Craft encrypted key with ~2^31 iteration count
  2. Delivery
    Deliver malicious PKCS#8/PEM to victim service
  3. Exploit
    Service invokes PbeUtilities key derivation
  4. Execution
    KDF runs before password/data check
  5. Impact
    CPU exhaustion denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application parse and attempt to decrypt an attacker-supplied encrypted private key using bc-csharp before 2.7.0 - specifically a PKCS#8 EncryptedPrivateKeyInfo object, an 'ENCRYPTED PRIVATE KEY' PEM file, or a CMS password recipient (CmsPbeKey) routed through PbeUtilities.GenerateCipherParameters. The malicious iteration count (near 2^31) is read directly from the unauthenticated algorithm parameters, and the KDF executes before any password or ciphertext check, so no valid password or prior authentication is needed. The key LIMITING factor is user/application interaction (CVSS UI:P): the attacker cannot trigger this without the victim choosing to load/decrypt the supplied key, so only services that ingest externally-controlled encrypted keys are realistically exposed. Note Pkcs12Store loading is tracked separately under CVE-2026-63572 and zero/negative PKCS#12 counts under CVE-2026-63575.

Impact

This is a moderate-severity denial-of-service issue, not a high-priority emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) scores 7.1 driven entirely by availability impact - there is no confidentiality or integrity exposure, and no code execution. The vector reports network reachability and no privileges, but UI:P means exploitation is not fully autonomous: a victim application or user must actually load/decrypt the attacker-supplied encrypted private key, so this is a 'malicious input processing' DoS rather than a remotely-automatable service crash. No EPSS score was provided in the input, and there is no CISA KEV listing and no referenced proof-of-concept, so exploitation status is: no public exploit identified at time of analysis. The patch (bounding iteration count, default 10,000,000, configurable via Org.BouncyCastle.Pbe.MaxIterationCount) is confirmed available from the vendor with multiple commits and a regression test. SSVC-style reading: technical impact is partial (availability only, CPU exhaustion, not total system compromise) and exploitation is user-interaction-gated, lowering real-world urgency below what the 7.1 might suggest for teams that do not parse untrusted encrypted keys. Priority is genuine only for services that accept and decrypt externally-supplied PKCS#8/PEM encrypted keys or CMS password recipients; elsewhere it is low real-world risk.

Exploit ScenarioDerived

An attacker crafts a PKCS#8 EncryptedPrivateKeyInfo or 'ENCRYPTED PRIVATE KEY' PEM file in which the PBES2/PBKDF2 (or PKCS#5 PBES1 / PKCS#12 PBE) parameters specify an iteration count near 2^31. When a service using bc-csharp before 2.7.0 attempts to decrypt this key via PbeUtilities.GenerateCipherParameters, the key-derivation function runs the attacker-chosen iteration count before the password or ciphertext is validated, pinning a CPU core and exhausting resources. No public exploit is identified at time of analysis, but the condition is trivial to construct by hand-editing the unauthenticated algorithm parameters.

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

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

Alert me

AnalysisAIv1 – Oct 02, 2026

CPU-exhaustion denial of service in Bouncy Castle for C

(bc-csharp) before 2.7.0 allows attackers who can get an application to decrypt a supplied encrypted private key to force an effectively unbounded PBKDF2 key-derivation workload, because the iteration count (near 2^31) is read directly from unauthenticated algorithm parameters and the key derivation runs before either the password or the ciphertext can be checked. The CVSS vector carries PR:N, so no credentials are required, but exploitation hinges on the victim choosing to load or decrypt the attacker's key material (UI:P) - realistically only services that ingest externally controlled PKCS#8 EncryptedPrivateKeyInfo objects, "ENCRYPTED PRIVATE KEY" PEM files, or CMS password recipients (CmsPbeKey) are exposed. No public exploit code and no confirmed active exploitation were identified at time of analysis, and this is a moderate-severity availability issue rather than a confidentiality or integrity compromise; related PKCS#12 paths are tracked separately under CVE-2026-63572 (Pkcs12Store loading) and CVE-2026-63575 (zero/negative counts with PKCS#12 PBE algorithms).

RemediationAI

Upgrade to Bouncy Castle for C

2.7.0 or later, which is the first release outside the affected range and which contains the bounded iteration-count check; the upstream fix is visible in the referenced commits, notably https://github.com/bcgit/bc-csharp/commit/c00fc018fca89c077c64dd2a2a2eb00ae7d97241 (PbeUtilities.CheckPbeIterationCount) and the companion commits 54ea0b179ee627027829b44c45d6dd32e575bd67, 7c0ed15f9783c9595b1a53f3900136461fd944f4, 34a7c05f719c91c024f285c6b420d3c00f8019dd, and b57165ecb7790ecea08273b219d52d80c12990e4, with guidance at https://github.com/bcgit/bc-csharp/wiki/CVE-2026-63578. Because patch currency across .NET dependency trees is often poor, note that the released fix is parameterised: after patching you can lower the cap from its 10,000,000 default via the Org.BouncyCastle.Pbe.MaxIterationCount environment variable, though setting it too low will reject legitimately encrypted keys and break decryption of existing key material. For systems that cannot upgrade immediately, the effective compensating controls are input-side rather than network-side: pre-parse and reject any untrusted PKCS#8/EncryptedPrivateKeyInfo, "ENCRYPTED PRIVATE KEY" PEM, or CMS password-recipient blob whose PBKDF2 iteration count exceeds a sane ceiling (a few hundred thousand) before handing it to bc-csharp, and refuse to accept externally supplied encrypted private keys at all where the business flow allows - both carry the trade-off that some legitimate high-iteration keys will be declined. Additionally, isolate any routine that decrypts untrusted keys into a worker process or thread with a hard CPU/time budget and a bounded queue so that a single crafted request cannot monopolise the host; this degrades throughput under attack but preserves service availability. No other product-level workaround exists, since the flaw is in library code rather than in a reachable network service.

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 root cause is CWE-770 (Allocation of Resources Without Limits or Throttling) in the PbeUtilities.GenerateCipherParameters path of the Legion of the Bouncy Castle Inc. bc-csharp library (CPE cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-csharp:*). Password-based encryption in this library spans PKCS#5 PBES1 and PBES2 (PBKDF2), the PKCS#12 PBE algorithm family, and CMS password recipients via CmsPbeKey; all of these flow through the shared parameter-generation helper. In PKCS#8 EncryptedPrivateKeyInfo and its PEM equivalent, the PBE parameters - algorithm OID, salt, and iteration count - are transmitted in an unauthenticated ASN.1 container alongside the ciphertext, so an attacker fully controls the iteration count. Prior to the fix, that value was taken via IntValueExact with no upper bound and fed straight into the key-derivation function, which executes before any integrity or password verification; a count close to 2^31 therefore burns enormous CPU per decryption attempt with no early exit. The upstream remediation replaces the raw read with a new CheckPbeIterationCount helper that rejects non-exact integers and values <= 0, and enforces a maximum (default 10,000,000, overridable through the Org.BouncyCastle.Pbe.MaxIterationCount environment variable) before the KDF is invoked, as verified by the accompanying test that lowers the bound below a normal 2048-iteration key and expects an ArgumentException rather than a derivation.

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

Attacker supplies a key over the network with no privileges (PR:N) but the victim must load/decrypt it (UI:R); impact is CPU-exhaustion availability only (A:H), with no C/I effect.

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

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

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

DescriptionCVE.org

Allocation of resources without limits in password-based private-key decryption (PbeUtilities.GenerateCipherParameters) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows an attacker who can supply an encrypted private key, such as a PKCS#8 EncryptedPrivateKeyInfo or "ENCRYPTED PRIVATE KEY" PEM file, to cause a denial of service through CPU exhaustion via an iteration count close to 2^31, because the count is taken from the unauthenticated algorithm parameters without an upper bound and the key derivation runs before the password or the data can be checked. PKCS#5 PBES1 and PBES2 (PBKDF2), the PKCS#12 PBE algorithms and CMS password recipients (CmsPbeKey) are affected. Loading PKCS#12 files with Pkcs12Store is covered by CVE-2026-63572, and a zero or negative count with the PKCS#12 algorithms by CVE-2026-63575.

Executive ViewAI

Why It Matters

Bouncy Castle for C

(bc-csharp) before 2.7.0 can cause excessive CPU consumption when applications decrypt attacker-supplied encrypted private keys, threatening availability for services that ingest external PKCS#8, PEM 'ENCRYPTED PRIVATE KEY', or CMS password-recipient key material. This is an unauthenticated availability issue from the attacker's perspective, though exploitation requires a victim application to load or decrypt the supplied key material; no public exploit identified at time of analysis. Leadership should care because affected key-ingestion services could suffer slowdowns or outages even without data confidentiality or integrity impact.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
High
Bouncy Castle is a widely deployed cryptography library across the .NET ecosystem
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.3%
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

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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