Executive brief
OpenSSL's Certificate Management Protocol (CMP) feature caches additional certificates sent in CMP messages but fails to clean them up if the message is rejected. A malicious attacker can repeatedly send CMP requests with large lists of invalid extra certificates to a CMP server, forcing it to store them indefinitely and causing the server's memory usage to grow without bounds, eventually leading to out-of-memory errors and service unavailability.
Technical details
The vulnerability is a resource exhaustion flaw (CWE-770) in OpenSSL's CMP implementation where the extraCerts cache in a reused OSSL_CMP_CTX context is never expunged after a message rejection. When a CMP server reuses a single context object across multiple requests, an attacker can send malformed CMP messages with large lists of extraCerts; even though the message is rejected, the certificates remain in the server's untrusted certificate stack. An attacker with network access to a CMP server can exploit this without authentication by repeatedly sending CMP messages with unique extra certificates, causing unbounded memory growth. The fix, applied in commits 01e5679 and 21a5d96, removes cached extra certificates when a message is rejected, treating rejected messages the same as when caching is disabled.
Affected products
- OpenSSL OpenSSL
Timeline
- 2026-08-25: disclosed
- 2026-08-24: patched: Patches merged as commits 01e5679 and 21a5d96