p PatchFirst

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

Stack: system · python

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

Original sources

Check your server →