OpenSSL: NULL Pointer Dereference in CMP Client Revocation Response Handling
What fixes it
- 4.0.3OpenSSLCVE List
- 3.6.5OpenSSLCVE List
- 3.5.9OpenSSLCVE List
- 3.4.8OpenSSLCVE List
- 3.0.23OpenSSLCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Issue summary: A CMP client that requests certificate revocation on the basis of a PKCS#10 CSR may dereference a NULL pointer and terminate abnormally when processing a crafted revocation response.
Impact summary: The NULL pointer dereference happens on a read which leads to a crash and a Denial of Service for the affected client application.
CWE: CWE-476: NULL-pointer dereference
Description: A CMP client revoking a certificate has to tell the server which certificate to revoke, and may do so by supplying a PKCS#10 CSR instead of the certificate itself or its issuer name and serial number. This is 'openssl cmp -cmd rr -csr <file>' on the command line, or OSSL_CMP_exec_RR_ses() with the certificate supplied via OSSL_CMP_CTX_set1_p10CSR() through the API.
A CSR does not contain the issuer name and serial number of the certificate, so the client does not send them. A server may optionally name the certificate it revoked in its response, and the client then compares that name against what it sent. Having sent neither an issuer name nor a serial number, it has nothing to compare against, and a server returning a specially crafted name causes the client to read from a NULL pointer and crash.
The revocation response is checked for valid message protection before the affected code is reached, so an attacker must be a malicious or compromised CMP server, or a man-in-the-middle in possession of the secret used for message protection. Clients that identify the certificate to be revoked by a certificate or by issuer and serial number rather than by a PKCS#10 CSR are not affected.
FIPS impact: no No FIPS modules are affected by this issue, as the CMP protocol implementation is outside the OpenSSL FIPS module boundary.
Text from CVE List
Affected versions 5
- OpenSSLaffected: 4.0.0 before 4.0.3CVE List
- OpenSSLaffected: 3.6.0 before 3.6.5CVE List
- OpenSSLaffected: 3.5.0 before 3.5.9CVE List
- OpenSSLaffected: 3.4.0 before 3.4.8CVE List
- OpenSSLaffected: 3.0.0 before 3.0.23CVE List
References 5
- github.com/openssl/openssl/commit/7ca0ccb5172a577e9b87267d77bfe21e5481a5e7Fixvia CVE List
- github.com/openssl/openssl/commit/7588db7fef14209c3caa3a101d11a02006b19166Fixvia CVE List
- github.com/openssl/openssl/commit/9eb2a8a9b86136cdb39d6d7d50644dd66941cdc3Fixvia CVE List
- github.com/openssl/openssl/commit/abf02872a4b71767ecc72293424420f5b009190fFixvia CVE List
- openssl-library.org/news/secadv/20260929.txtAdvisoryvia CVE List