High severity · published Oct 2, 2026
CVE-2026-103604
Quadratic-time escaping when converting X.509 distinguished names to strings
8.7
CVSS
0.3%
EPSS
No
On KEV
Description
Inefficient algorithmic complexity in X.509 distinguished name string conversion (X509Name.ToString and IetfUtilities.ValueToString) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a remote unauthenticated attacker to cause a denial of service through CPU exhaustion via a certificate, CRL, certification request or other structure whose name contains a long attribute value made up of characters that must be escaped, such as commas, or of leading or trailing spaces, because each escaping backslash was inserted into the buffer being scanned, so the work grew quadratically with the length of the value. Applications are exposed when they convert such a name to a string, for example to log or display it, or compare it with IetfUtilities.RdnAreEqual, as PKIX path validation does for directoryName name constraints.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 23% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
BC
bc-csharp · Legion of the Bouncy Castle Inc.
before 2.7.0 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-103604
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-103604
vendor-advisory
https://github.com/bcgit/bc-csharp/wiki/CVE-2026-103604
patch
https://github.com/bcgit/bc-csharp/commit/bd03e38bbb49db5be33f4463fc40997400c545cc
More from bc-csharp
9.1
CVE-2026-63569
MTI/A0 DHAgreement does not validate the peer's ephemeral value
8.7
CVE-2026-103603
Unbounded HSS public key level count allows huge array allocation during signature verification
8.7
CVE-2026-103600
Unbounded ASN.1 nesting depth causes process-terminating stack overflow
8.7
CVE-2026-63571
Attribute certificate path validation does not verify the attribute certificate's signature
8.2
CVE-2026-103602
Name constraints bypass via trailing dot in rfc822Name, dNSName and URI hosts
