CVE-2026-14663
The vulnerability in PostgreSQL's pgcrypto extension (pgp_sym_decrypt, pgp_pub_decrypt) destroys the MDC (Modification Detection Code) integrity protection under specific OpenSSL cipher configurations. When this occurs, decryption succeeds with any key—the system returns valid-looking plaintext regardless of whether the key matches. This is not a cipher downgrade; it's the complete elimination of the authentication property that authenticated encryption must provide. The CVSS 6.5 rating mischaracterizes this issue. The actual attack surface is not 'decrypt stored ciphertext by brute-forcing the key'—it's 'inject or influence encrypted data and extract authenticated plaintext.' If an attacker can control what gets decrypted (through log injection, compromised data pipelines, or application logic flaws), they receive output that downstream systems treat as trustworthy because the function name literally says 'decrypt.' The vulnerability exploits the implicit guarantee that decryption output is valid only when the key is correct and ciphertext hasn't been tampered with—this guarantee collapses silently. Patching PostgreSQL prevents new vulnerable instances but does not restore MDC protection to data already encrypted under affected OpenSSL configurations. This changes the remediation burden from a straightforward upgrade to a data-at-risk problem requiring identification and re-encryption of affected columns. Organizations running 'hardened' OpenSSL configurations may be more vulnerable, not less, depending on which cipher modes were disabled. The practical consequences: audit encrypted columns to determine which used affected cipher configurations during the vulnerable window; treat all decryption output as untrusted unless independently validated for integrity; and plan for re-encryption of historical data as a remediation step, not just patching the PostgreSQL version.
Reviewed through automated stages and approved by a human before publication.