Issue summary: OpenSSL CMP password based protection verification only checks whether the protectionAlg parameter was not NULL and not its ASN.1 type, before treating it as a PBMParameter. A crafted message can contain a parameter of a different type, which is then dereferenced as an invalid pointer.
Impact summary: A remote, unauthenticated attacker can crash an application acting as a CMP server that accepts PBM-protected messages, or a CMP client talking to a malicious or intercepted CMP server, resulting in a Denial of Service.
CWE: CWE-476: NULL Pointer Dereference
Description: When verifying the password-based MAC protection of a CMP message, OpenSSL library reads the protectionAlg algorithm parameter with X509_ALGOR_get0(), which returns both the parameter type and its value pointer. The value is then cast to an ASN1_STRING and treated as the expected PBMParameter after only checking that pointer is not NULL. The parameter type returned by X509_ALGOR_get0() was never consulted.
This happens during protection verification, before any MAC is computed, so no knowledge of the PBM shared secret is required; the only precondition is that PBM verification is reachable. On the server side this is reached from OSSL_CMP_SRV_process_request() for any application that stands up a CMP server accepting PBM-protected messages, and on the client side from CMP response validation against a malicious or on-path (MITM) server. The reliable consequence is a denial of service; there is no memory disclosure, no controlled memory write, and no path to code execution. CMP is a specialized feature that an application must explicitly enable.
FIPS impact: no As the CMP code lives outside the FIPS module boundary, no FIPS modules are affected by this CVE.
{
"cna_assigner": "openssl",
"cwe_ids": [
"CWE-476"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63076.json"
}{
"extracted_events": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.0.2"
},
{
"introduced": "3.6.0"
},
{
"fixed": "3.6.4"
},
{
"introduced": "3.5.0"
},
{
"fixed": "3.5.8"
},
{
"introduced": "3.4.0"
},
{
"fixed": "3.4.7"
},
{
"introduced": "3.0.0"
},
{
"fixed": "3.0.22"
}
],
"source": [
"AFFECTED_FIELD",
"REFERENCES"
]
}
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-63076.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "106587459071139848616027292385591674687",
"length": 2226
},
"id": "CVE-2026-63076-6da1632b",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a1f348ccb328c3afbd4ba6883f9b7c813c043259",
"target": {
"file": "crypto/cmp/cmp_protect.c",
"function": "ossl_cmp_calc_protection"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"89468342301851265665889764551945748234",
"154015450110099968683859733324895660673",
"99937134846491295684936526173010685312",
"69426374678207311866996959622545977209"
],
"threshold": 0.9
},
"id": "CVE-2026-63076-81bd0ce4",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a17cc8d612ecff6d94a9b7ca8b5283ddf5ff570e",
"target": {
"file": "crypto/cmp/cmp_protect.c"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"89468342301851265665889764551945748234",
"154015450110099968683859733324895660673",
"99937134846491295684936526173010685312",
"69426374678207311866996959622545977209"
],
"threshold": 0.9
},
"id": "CVE-2026-63076-a910a821",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/37882aa2e0256e1072442a8f62f7db45b995c45b",
"target": {
"file": "crypto/cmp/cmp_protect.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "66919414319172588973685798552640721673",
"length": 2312
},
"id": "CVE-2026-63076-bacf5626",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/37882aa2e0256e1072442a8f62f7db45b995c45b",
"target": {
"file": "crypto/cmp/cmp_protect.c",
"function": "ossl_cmp_calc_protection"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "134701315954662519423110214353576089201",
"length": 2274
},
"id": "CVE-2026-63076-c8d62d1b",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a17cc8d612ecff6d94a9b7ca8b5283ddf5ff570e",
"target": {
"file": "crypto/cmp/cmp_protect.c",
"function": "ossl_cmp_calc_protection"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"89468342301851265665889764551945748234",
"154015450110099968683859733324895660673",
"99937134846491295684936526173010685312",
"69426374678207311866996959622545977209"
],
"threshold": 0.9
},
"id": "CVE-2026-63076-d05c2c80",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openssl/openssl/commit/a1f348ccb328c3afbd4ba6883f9b7c813c043259",
"target": {
"file": "crypto/cmp/cmp_protect.c"
}
}
]
"2026-08-30T08:06:11Z"