CVE-2026-63568: Unbounded CMP/CRMF password-based MAC iteration count allows CPU exhaustion
Allocation of resources without limits or throttling in the CMP/CRMF password-based MAC verifier (PKMacBuilder) 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 CMP message or CRMF certificate request whose PBMParameter declares a very large iteration count, because PKMacBuilder enforced its iteration-count ceiling only when the caller had supplied an explicit maximum through the PKMacBuilder(IPKMacPrimitivesProvider, int) constructor. With any other constructor, ProtectedPkiMessage.Verify and CertificateRequestMessage.IsValidSigningKeyPop performed as many hash iterations as the sender requested, up to about 2^31, before the MAC could be checked.
Affected Software
Event History
Frequently Asked Questions
Which deployments are exposed to unauthenticated CPU exhaustion?
Deployments using bc-csharp before 2.7.0 that verify CMP messages with ProtectedPkiMessage.Verify or validate CRMF signing-key proof of possession with CertificateRequestMessage.IsValidSigningKeyPop are exposed when they process attacker-supplied messages or requests.
What does an attacker need to do to trigger the issue?
An attacker does not need to authenticate. They need to submit a CMP message or CRMF certificate request containing PBMParameter with a very large password-based MAC iteration count, causing verification to perform the requested hash iterations before checking the MAC.
Are default PKMacBuilder constructor paths affected?
Yes. The iteration ceiling was enforced only when the caller used PKMacBuilder(IPKMacPrimitivesProvider, int) with an explicit maximum; other constructors could process sender-requested iteration counts up to approximately 2^31.
What is the available remediation?
Upgrade bc-csharp to version 2.7.0 or later. The affected behavior applies to versions before 2.7.0.