pgjdbc is an open source postgresql JDBC Driver. In releases 42.7.4 through 42.7.11, channelBinding=require connections can be silently downgraded from SCRAM-SHA-256-PLUS with channel binding to plain SCRAM-SHA-256 without it, losing the man-in-the-middle protection the setting is meant to guarantee. An attacker who can intercept the TLS connection can trigger the downgrade with a certificate whose signature algorithm has no tls-server-end-point channel-binding hash, because the bundled com.ongres.scram:scram-client returns an empty byte array instead of failing and pgJDBC ScramAuthenticator checks only that the server advertised a PLUS mechanism, without rejecting the empty binding or checking that the negotiated mechanism uses channel binding. This issue is fixed in version 42.7.12.
{
"cwe_ids": [
"CWE-636",
"CWE-757"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54291.json"
}"2026-07-14T18:34:58Z"
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-54291.json"
[
{
"target": {
"function": "initializeScramClient",
"file": "pgjdbc/src/main/java/org/postgresql/core/v3/ScramAuthenticator.java"
},
"source": "https://github.com/pgjdbc/pgjdbc/commit/77df98e4e66c12936ded3478a0954f6f580bad99",
"signature_type": "Function",
"id": "CVE-2026-54291-d94ad128",
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "255324032069075513890916819560084082487",
"length": 808.0
}
},
{
"target": {
"file": "pgjdbc/src/main/java/org/postgresql/core/v3/ScramAuthenticator.java"
},
"source": "https://github.com/pgjdbc/pgjdbc/commit/77df98e4e66c12936ded3478a0954f6f580bad99",
"signature_type": "Line",
"id": "CVE-2026-54291-da2f72fc",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"123880665214516780252918597775136568935",
"149726826253594934118541644604655274094",
"286914143497087767352230138395380628590",
"199966273071929047579202639851243169016",
"71641125343552755547338499857968937615",
"333346545399287525245030715603696473484",
"158406048174994765231920278618545760524"
],
"threshold": 0.9
}
},
{
"target": {
"function": "getChannelBindingData",
"file": "pgjdbc/src/main/java/org/postgresql/core/v3/ScramAuthenticator.java"
},
"source": "https://github.com/pgjdbc/pgjdbc/commit/77df98e4e66c12936ded3478a0954f6f580bad99",
"signature_type": "Function",
"id": "CVE-2026-54291-e8250569",
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "162842916170076529557392742692671005205",
"length": 1023.0
}
}
]