CVE-2025-49146: PostgreSQL JDBC Driver Allows Insecure Authentication Despite Channel Binding Requirement

org.postgresql:postgresql Updated 02 Oct 2025

Summary

11/06/2025
Yes i
High
8.2

CVE-2025-49146: pgjdbc Client Allows Fallback to Insecure Authentication Despite channelBinding=require Configuration. Affects org.postgresql:postgresql versions >= 42.7.4, < 42.7.7. Fixed in 42.7.7. How to fix ↓

Also tracked for

The same CVE-2025-49146 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

The PostgreSQL JDBC driver is a widely used library that enables Java applications to interact with PostgreSQL databases. It supports various authentication methods and is designed to ensure secure connections. However, a specific vulnerability allows the driver to fall back to insecure authentication methods, compromising the intended security features.

Vulnerability Detail

The vulnerability arises when the PostgreSQL JDBC driver is configured with channel binding set to 'required'. Despite this configuration, the driver incorrectly permits connections using authentication methods that do not support channel binding, such as password, MD5, GSS, or SSPI authentication. This flaw can be exploited by a man-in-the-middle attacker, who could intercept connections that users believe are secure, leading to potential data breaches and unauthorized access.

How To Fix

Latest published version: 42.7.14 as of 22 Oct 2026

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

42.7.7

This is the first release that contains the fix.

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

As a temporary workaround, configure the JDBC connection with 'sslMode=verify-full' to help prevent man-in-the-middle attacks. This can be done by adding the following parameter to your connection string:

jdbc:postgresql://host:port/database?sslMode=verify-full

Conclusion

The PostgreSQL JDBC driver vulnerability (CVE-2025-49146) poses a significant risk by allowing insecure authentication methods despite channel binding requirements. It is crucial to update to the patched version (42.7.7) or implement the recommended workaround to mitigate potential attacks.

See every vulnerability recorded for org.postgresql:postgresql →

Share this vulnerability

FAQ

Channel binding is a security feature that ensures the integrity of the communication channel between the client and server, preventing man-in-the-middle attacks.

If your application uses the affected version of the PostgreSQL JDBC driver with channel binding set to 'required', it may allow insecure authentication methods, exposing your application to potential attacks.

If an immediate update is not possible, implement the workaround by setting 'sslMode=verify-full' in your connection string to enhance security temporarily.

You can use tools like Vulert, which monitors your project's pom.xml file for vulnerabilities in real-time, alerting you to any issues without requiring code access.

The CVSS score for this vulnerability is 8.2, indicating a high severity level that requires prompt attention.

Related vulnerabilities

Recent vulnerabilities recorded for org.postgresql:postgresql.

How To Fix

Latest published version: 42.7.14 as of 22 Oct 2026

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

42.7.7

This is the first release that contains the fix.

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback