CVE-2024-26130
HighCVSS 7.5Summary
The cryptography library versions 38.0.0 through 42.0.4 contains a NULL pointer dereference vulnerability in pkcs12.serialize_key_and_certificates when a certificate does not match the private key and an encryption_algorithm with hmac_hash is set. This can crash the Python process.
Risk Assessment
This may lead to denial of service (crash) of applications using this function. The risk affects Python applications using the cryptography library for PKCS12 operations.
Recommendation
Update the cryptography library to version 42.0.4 or later. Ensure key-certificate pairs match before calling the function.
Other vulnerabilities in cryptography
See all- CVE-2026-39892Critical
The cryptography library for Python versions 45.0.0 through 46.0.6 contains a buffer overflow vulnerability. The issue occurs when a non-contiguous buffer is passed to APIs that accept Python buffers (e.g., Hash.update()). The flaw is fixed in version 46.0.7.
- CVE-2020-36242Critical
In the cryptography package for Python before version 3.3.2, sequences of update calls for symmetric encryption of multi-GB data can cause integer overflow and buffer overflow, as demonstrated with the Fernet class.
- CVE-2026-69248Medium
The cryptography package for Python in versions 45.0.0 through 48.0.0 has a vulnerability in certificate chain verification. If an intermediate constrained CA permits the DNS name foo.example.com, and the leaf certificate has a wildcard *.example.com, the verifier accepts the chain, allowing escape outside permitted names. Fixed in version 49.0.0.
- CVE-2026-69247High
cryptography, a cryptographic library for Python, versions 44.0.0 through 50.0.0, is vulnerable to a Bleichenbacher-style attack. Functions pkcs7_decrypt_der, pkcs7_decrypt_pem, and pkcs7_decrypt_smime reveal differences in decrypting encryptedKey, which can be exploited to decrypt the content-encryption key. Exploitation requires a service auto-decrypting untrusted EnvelopedData, e.g., S/MIME gateways. Fixed in version 50.0.0.
- CVE-2026-34073Medium
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to version 46.0.6, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com. This issue has been patched in version 46.0.6.
- CVE-2026-26007Medium
The cryptography library for Python before version 46.0.5 does not verify that a public key point belongs to the expected prime-order subgroup. This missing validation allows an attacker to provide a point from a small-order subgroup, leading to private key leakage in ECDH and signature forgery in ECDSA. Only SECT curves are affected.
Original NVD description (English source)
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Starting in version 38.0.0 and prior to version 42.0.4, if `pkcs12.serialize_key_and_certificates` is called with both a certificate whose public key did not match the provided private key and an `encryption_algorithm` with `hmac_hash` set (via `PrivateFormat.PKCS12.encryption_builder().hmac_hash(...)`, then a NULL pointer dereference would occur, crashing the Python process. This has been resolved in version 42.0.4, the first version in which a `ValueError` is properly raised.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

