CVE-2026-69247
CVE-2026-69247 · cryptography: PKCS#7 EnvelopedData decryption exposes a Bleichenbacher oracle through distinguishable errors and timing
This page contains facts from public vulnerability sources. Check the original advisory before updating.
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. From 44.0.0 until 50.0.0, pkcs7_decrypt_der, pkcs7_decrypt_pem, and pkcs7_decrypt_smime reported the outcome of decrypting a RecipientInfo's encryptedKey in several distinguishable ways, one of which disclosed the exact length recovered from the RSA operation. The same distinction was also observable by timing. An application that decrypts attacker-supplied EnvelopedData and reflects the outcome gives the attacker a Bleichenbacher oracle against the content-encryption key. Decryption ran as RSA PKCS#1 v1.5 decrypt of encryptedKey, build an AES cipher from the result, then AES-CBC decrypt and PKCS#7 unpad. Invalid RSA padding, a valid padding with a bad key length, a correct length with a wrong key, and the real key each failed or succeeded differently. Case 1 is reachable only where the linked library lacks implicit rejection: OpenSSL 3.0 and 3.1, LibreSSL, and BoringSSL. Exploitation requires a service that auto-decrypts untrusted EnvelopedData matching the victim certificate and answers adaptively at high volume, such as an S/MIME gateway or mail filter. This issue is fixed in 50.0.0.
CVSS 8.2 · High · EPSS 0.3% · Fix available
- Published
- Updated
Affected products and versions
cryptography
- Versions
- >= 44.0.0, < 50.0.0: Affected
No fix published
python-cryptography Debian:14
- Versions
- 43.0.0-3
- 44.0.2-1
- 44.0.2-2
- 45.0.6-1
- 45.0.6-1~exp1
- 45.0.7-1
- 46.0.1-1
- 46.0.1-1~exp1
- 46.0.5-1
- 46.0.5-2
- 46.0.6-1
- 46.0.7-1
- 47.0.0-1
- 49.0.0-1
- 49.0.0-1~exp1
- Affected ranges
- ECOSYSTEM: < 49.0.0-2
Update to 49.0.0-2
cryptography PyPI
- Versions
- 44.0.0
- 44.0.1
- 44.0.2
- 44.0.3
- 45.0.0
- 45.0.1
- 45.0.2
- 45.0.3
- 45.0.4
- 45.0.5
- 45.0.6
- 45.0.7
- 46.0.0
- 46.0.1
- 46.0.2
- 46.0.3
- 46.0.4
- 46.0.5
- 46.0.6
- 46.0.7
- 47.0.0
- 48.0.0
- 48.0.1
- 49.0.0
- Affected ranges
- ECOSYSTEM: ≥ 44.0.0, < 50.0.0
Update to 50.0.0
python-cryptography Ubuntu:26.04:LTS
- Versions
- 43.0.0-1ubuntu1
- 46.0.1-1ubuntu2
- 46.0.5-1ubuntu1
- 46.0.5-1ubuntu2
- Affected ranges
- ECOSYSTEM: < 46.0.5-1ubuntu2.2
Update to 46.0.5-1ubuntu2.2