Impact
The PostgreSQL JDBC Driver inadvertently allows a silent downgrade of the channel binding requirement for SCRAM authentication. When a PostgreSQL server presents a TLS certificate whose signature algorithm does not supply a tls-server-end-point hash, the driver’s scram client returns an empty byte array instead of rejecting the certificate. The driver’s ScramAuthenticator only verifies that the server advertises a "scram-sha-256-plus" mechanism and ignores the missing binding, allowing the session to fall back to plain SCRAM‑SHA‑256. This removes the man‑in‑the‑middle protection that the channelBinding=require setting is meant to enforce, potentially letting an attacker impersonate a user or gain unauthorized database access. The flaw is classified as CWE‑636, CWE‑757, and CWE‑940.
Affected Systems
Products affected are the open‑source PostgreSQL JDBC Driver (pgjdbc) in release versions 42.7.4 through 42.7.11. Any application that connects to a PostgreSQL server over TLS and has the channelBinding=require option enabled will be impacted.
Risk and Exploitability
With a CVSS score of 8.2, the vulnerability is high severity. Its EPSS value of less than 1% indicates a very low probability of exploitation as of the latest data, and the vulnerability is not listed in CISA’s KEV catalog. The exploit requires the attacker to perform a man‑in‑the‑middle attack on the TLS connection and supply a certificate lacking a channel‑binding hash. In environments where such MITM attacks are feasible, the impact could be total loss of confidentiality and integrity of authentication for all users of the compromised database connection.
OpenCVE Enrichment
Github GHSA