DEV Community

CVE Reports
CVE Reports

Posted on • Originally published at cvereports.com

CVE-2026-69247: CVE-2026-69247: Bleichenbacher Oracle in pyca/cryptography PKCS#7 Decryption

CVE-2026-69247: Bleichenbacher Oracle in pyca/cryptography PKCS#7 Decryption

Vulnerability ID: CVE-2026-69247
CVSS Score: 8.2
Published: 2026-08-03

A side-channel vulnerability in pyca/cryptography (versions 44.0.0 through 49.9.9) allows unauthenticated remote attackers to expose a Bleichenbacher oracle. This flaw exists within the PKCS#7 decryption module (specifically pkcs7_decrypt_der, pkcs7_decrypt_pem, and pkcs7_decrypt_smime) during Content Encryption Key (CEK) decryption when using RSA PKCS#1 v1.5 padding. Differences in error classification and symmetric execution timing allow an attacker to reconstruct plaintext keys.

TL;DR

A Bleichenbacher side-channel timing and error oracle in pyca/cryptography before version 50.0.0 allows unauthenticated remote attackers to recover Content Encryption Keys (CEK) and decrypt sensitive S/MIME messages by submitting crafted PKCS#7 ciphertexts and observing decryption responses.


⚠️ Exploit Status: POC

Technical Details

  • CWE ID: CWE-208: Observable Timing Discrepancy
  • Attack Vector: Network (AV:N)
  • CVSS v4.0 Score: 8.2 (High)
  • Exploit Status: Proof of concept code exists in library test suites; no public weaponized exploits.
  • CISA KEV Status: Not listed
  • Mitigation Standard: RFC 3218 (Key substitution on failure)
  • Affected Functionality: pkcs7_decrypt_der, pkcs7_decrypt_pem, pkcs7_decrypt_smime

Affected Systems

  • pyca/cryptography Python libraries (versions 44.0.0 through 49.9.9)
  • S/MIME processing gateways relying on affected cryptography versions
  • Email processing filters and document ingestion pipelines handling PKCS#7 EnvelopedData
  • cryptography: >= 44.0.0, < 50.0.0 (Fixed in: 50.0.0)

Code Analysis

Commit: 53fccd9

Fix PKCS7 decryption Bleichenbacher oracle by ensuring symmetric decryption occurs with a random key upon RSA decryption failure.

Mitigation Strategies

  • Upgrade the pyca/cryptography package to version 50.0.0 or higher.
  • Design S/MIME and mail-processing applications to handle decryption asynchronously in background queues with uniform execution times.
  • Sanitize application error messages to ensure that decryption failures always return a generic error code without leaking padding or size metrics.
  • Implement strict rate-limiting on endpoints that accept and decrypt encrypted PKCS#7 payloads.

Remediation Steps:

  1. Identify all Python execution environments and containerized applications utilizing the pyca/cryptography library.
  2. Execute pip install --upgrade cryptography>=50.0.0 in your deployment pipelines and update requirements.txt/poetry.lock files.
  3. Re-build and redeploy application containers to integrate the updated binary wheel.
  4. Review application-level error handlers to verify that ValueError exceptions from pkcs7_decrypt functions are caught and mapped to unified, safe error responses.

References


Read the full report for CVE-2026-69247 on our website for more details including interactive diagrams and full exploit analysis.

Top comments (0)