CVE-2026-54291

Source
https://cve.org/CVERecord?id=CVE-2026-54291
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-54291.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-54291
Aliases
Downstream
Published
2026-07-06T18:55:01.675Z
Modified
2026-07-14T18:34:58.477389Z
Severity
  • 8.2 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:L/SA:N CVSS Calculator
Summary
Silent channel-binding authentication downgrade via unsupported certificate algorithms
Details

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.

Database specific
{
    "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"
}
References

Affected packages

Git / github.com/ongres/scram

Affected ranges

Type
GIT
Repo
https://github.com/ongres/scram
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
{
    "source": "REFERENCES"
}
Type
GIT
Repo
https://github.com/pgjdbc/pgjdbc
Events
Database specific
{
    "extracted_events": [
        {
            "introduced": "42.7.4"
        },
        {
            "fixed": "42.7.12"
        }
    ],
    "source": [
        "AFFECTED_FIELD",
        "CPE_RANGE",
        "REFERENCES"
    ],
    "cpe": "cpe:2.3:a:postgresql:postgresql_jdbc_driver:*:*:*:*:*:*:*:*"
}

Affected versions

1.*
1.0.0-beta.2
1.9-beta1
2.*
2.0
2.0-beta1
2.0-beta2
2.0-beta3
2.1
3.*
3.0
3.1
3.2
REL42.*
REL42.7.10
REL42.7.11
REL42.7.4
REL42.7.4-rc1
REL42.7.5
REL42.7.5-rc1
REL42.7.6
REL42.7.6-rc1
REL42.7.7
REL42.7.7-rc1
REL42.7.8
REL42.7.9

Database specific

vanir_signatures_modified
"2026-07-14T18:34:58Z"
source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-54291.json"
vanir_signatures
[
    {
        "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
        }
    }
]