CVE-2026-54291: Silent Channel-Binding Authentication Downgrade in PostgreSQL JDBC Driver (pgjdbc)
Vulnerability ID: CVE-2026-54291
CVSS Score: 8.2
Published: 2026-07-21
A critical security bypass and algorithm downgrade vulnerability in the PostgreSQL JDBC Driver (pgjdbc) allows Man-in-the-Middle (MITM) attackers to silently bypass channel binding requirements. When configured with channelBinding=require, the driver fails to assert that the negotiated SCRAM mechanism utilizes channel binding, allowing downgrade to plain SCRAM-SHA-256 when encountering unsupported server certificate signature algorithms (such as Ed25519 or Ed448).
TL;DR
pgjdbc versions 42.7.4 to 42.7.11 silently downgrade connections configured with channelBinding=require to plain, non-channel-bound SCRAM-SHA-256 when a server certificate with an unsupported signature algorithm (like Ed25519) is presented, bypassing Man-in-the-Middle protections.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-757, CWE-636
- Attack Vector: Network
- CVSS v4.0 Score: 8.2 (High)
- CVSS v3.1 Score: 5.9 (Medium)
- Exploit Status: Proof of Concept / Technical Analysis Available
- KEV Status: Not Listed in CISA KEV
- Affected Components: org.postgresql.core.v3.ScramAuthenticator
Affected Systems
- pgjdbc (PostgreSQL JDBC Driver)
-
pgjdbc: >= 42.7.4, < 42.7.12 (Fixed in:
42.7.12)
Code Analysis
Commit: 77df98e
Enforce channel binding on the pgjdbc side, failing connections under require when channel binding data cannot be extracted.
Exploit Details
- GitHub Security Advisory: Official advisory containing remediation details and description of the security bypass.
Mitigation Strategies
- Upgrade pgjdbc to version 42.7.12 or higher to enforce post-negotiation channel binding checks.
- Upgrade com.ongres.scram:scram-client to version 3.3 or higher.
- Avoid using Ed25519 or Ed448 certificates on PostgreSQL database servers when older drivers are in use.
- Isolate database network traffic to prevent network-level interception (AiTM).
Remediation Steps:
- Identify all deployments using pgjdbc versions between 42.7.4 and 42.7.11.
- Update Maven dependencies or Gradle build files to reference org.postgresql:postgresql:42.7.12.
- Re-generate application deployment packages and verify transitive dependencies.
- Audit active TLS certificates on PostgreSQL servers to ensure they utilize RSA or ECDSA signature algorithms.
- Confirm that connections configured with channelBinding=require reject unsupported configurations post-upgrade.
References
- GitHub Security Advisory GHSA-j92g-9f8w-j867
- Fix Commit in GitHub Repository
- Ongres SCRAM Release 3.3 Changelog
- NVD Vulnerability Detail - CVE-2026-54291
Read the full report for CVE-2026-54291 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)