PostgreSQL JDBC Driver
CVE-2026-107314
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain man-in-the-middle position on app-to-DB path
-
ExploitTarget driver misconfigured to exclude all auth methods
-
ExecutionImpersonate server, request cleartext password auth
-
ImpactCapture plaintext database password
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Fail-secure design
|
| Exploitation Conditions | Exploitation requires BOTH a specific client misconfiguration and a network position. The pgjdbc connection property 'requireAuth' must be set to a value that excludes every one of the six known methods (e.g., requireAuth=!password,!md5,!gss,!sspi,!scram-sha-256,!none) or to a value containing no method at all (e.g., requireAuth=, a single comma); in that state the driver fails open and accepts any method including cleartext password. Limiting factors that sharply reduce real-world exposure: the property has NO default, so deployments that never set requireAuth are not affected; positive lists (e.g., requireAuth=scram-sha-256) and partial exclusions (e.g., requireAuth=!password,!md5) are enforced correctly and are safe; and the attacker must already hold an active man-in-the-middle position between the application and the PostgreSQL server to request and capture the cleartext password. Only driver versions 42.7.11 through 42.7.13 are affected; 42.7.14 refuses the connection (SQLState 08004). |
| Impact | This is a medium-severity, confidentiality-only fail-open flaw (CWE-636) whose real-world risk is meaningfully lower than the raw CVSS 5.9 might suggest. The CVSS vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N correctly reflects the key constraints: although the attack is network-based and needs no attacker authentication (PR:N), it carries high attack complexity (AC:H) because it requires an active man-in-the-middle position between the application and its PostgreSQL server AND a specific client misconfiguration. Impact is limited to confidentiality (C:H / I:N / A:N) - the leaked item is the database password, which is serious but not integrity or availability loss directly. No EPSS probability, KEV listing, or POC was supplied in the intelligence, so the exploitation signal is: no public exploit identified at time of analysis, and no evidence of active exploitation. The dominant risk-limiting factor is the narrow precondition: the flaw only triggers when requireAuth is set to a value that excludes all six known methods (a full negative list) or to an empty value such as a single comma - and the property has no default, so the large majority of deployments that never set requireAuth are not affected at all. Net: a real but conditional and non-widespread issue, better treated as a configuration-hardening fix than an emergency. |
| Exploit ScenarioDerived | An attacker who can intercept traffic between a Java application and its PostgreSQL server (e.g., on a shared network segment or via ARP/DNS spoofing) targets an app configured with requireAuth set to exclude all six auth methods or to an empty value. Because the driver fails open and accepts whatever the server requests, the attacker impersonates the server and asks for cleartext password authentication, and the driver sends the database password in the clear. No public exploit code was identified in the provided intelligence. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Cleartext database credential disclosure via man-in-the-middle interception affects pgjdbc (PostgreSQL JDBC Driver) versions 42.7.11 through 42.7.13 when the caller-supplied requireAuth connection property is set to exclude all six authentication methods the driver recognizes (for example requireAuth=!password,!md5,!gss,!sspi,!scram-sha-256,!none) or to a value containing no method at all (requireAuth=, a single comma). In that state the driver fails open and accepts whatever method the server requests, including cleartext password authentication, so an attacker who already holds an active man-in-the-middle position between the application and the PostgreSQL server can request cleartext authentication and capture the database password. Exposure is narrow: requireAuth has no default value, so deployments that never set the property are unaffected, and positive lists (requireAuth=scram-sha-256) or partial exclusions (requireAuth=!password,!md5) are enforced correctly; no public exploit identified at time of analysis and the issue is not in CISA KEV. Scoring is confidentiality-only at CVSS 5.9 with high attack complexity (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N), reflecting that both a specific client misconfiguration and a pre-existing network foothold are required.
RemediationAI
Upgrade to pgjdbc 42.7.14, which refuses a connection whose requireAuth configuration excludes every known method (returning SQLState 08004) and rejects a method-less value such as a bare comma as invalid; this is the vendor-released patch and per the advisory is the only complete fix. If immediate upgrade is not possible, the primary workaround is configuration hygiene: do not set requireAuth at all unless it is genuinely needed, and if it is needed use a positive allowlist such as requireAuth=scram-sha-256 or a partial exclusion such as requireAuth=!password,!md5, both of which are enforced correctly and are not vulnerable; also audit code, config files, and environment variables for blanket negations or empty values, since the failing configuration is easy to introduce by string concatenation. Because exploitation additionally requires a man-in-the-middle position, enforcing TLS with server certificate validation (for example sslmode=verify-full plus ssl=true and a trusted CA) removes the attacker's ability to answer the authentication challenge and thus blocks the attack even on an unpatched driver, at the cost of provisioning CA trust and updating keystores, and of breaking connections to servers with self-signed or mismatched certificates until trust is established. Network-layer controls such as restricting database traffic to trusted segments or requiring TLS at the server (hostssl with clientcert policies) reduce the on-path opportunity but do not address the underlying fail-open logic, so they should be treated as temporary compensating measures alongside the upgrade to 42.7.14 described in the advisory at https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-rhp9-mr79-r74h.
Affected ProductsAI
The affected component is pgjdbc, the PostgreSQL JDBC Driver, specifically versions 42.7.11 through 42.7.13 (Maven groupId/artifactId org.postgresql:postgresql), used by Java applications and application servers that connect to PostgreSQL through JDBC and that explicitly set the requireAuth connection property. Version 42.7.14 fixes the defect; earlier 42.7.x versions before 42.7.11 do not contain the vulnerable behavior described, and deployments of any version that leave requireAuth unset are not affected because the property has no default value. The vendor advisory is GHSA-rhp9-mr79-r74h at https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-rhp9-mr79-r74h, which is the authoritative reference for the vulnerable and fixed version ranges.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pgjdbc is the official Type 4 JDBC driver for PostgreSQL, used by Java applications to negotiate connections over the PostgreSQL frontend/backend protocol; during the startup and authentication handshake the server proposes an authentication method and the client responds. The requireAuth connection property (introduced in the 42.7.x line) lets a client constrain which methods it will tolerate, which matters because PostgreSQL servers may still permit weaker methods such as password (cleartext) or md5, and a hostile or compromised server or an on-path attacker can select a downgraded method. The root cause is CWE-636, 'Not Failing Securely (Failing Open)': when the property is expressed purely as a negation list that covers every method the driver knows, the computed allowlist is empty, and instead of rejecting the connection the driver treats the empty set as 'no restriction' and accepts any method the server requests; the same fail-open behavior occurs for a syntactically present but method-less value such as requireAuth=, (a single comma). A positive allowlist, by contrast, is evaluated normally, and a partial exclusion still leaves viable methods allowed and safe. The assessor's vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N describes an unauthenticated remote issue per the vector (PR:N) with high attack complexity attributable to the conjunction of misconfiguration and man-in-the-middle placement, and with impact limited to confidentiality. Only the Maven artifact org.postgresql:postgresql versions 42.7.11 through 42.7.13 are affected; no CPE strings were supplied in the available intelligence feed, so the affected coordinate should be treated as the Maven/Java package rather than a formal CPE binding.
Know when PostgreSQL gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
AV:N and PR:N because an unauthenticated network attacker triggers it, but AC:H because success requires a man-in-the-middle position plus a specific all-exclusion misconfiguration; only the database password leaks, so C:H/I:N/A:N.
Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).
CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
DescriptionCVE.org
pgjdbc, the PostgreSQL JDBC Driver, versions 42.7.11 through 42.7.13 enforce no restriction when the requireAuth connection property excludes all six authentication methods the driver knows, for example requireAuth=!password,!md5,!gss,!sspi,!scram-sha-256,!none. The driver then accepts any method the server asks for, including cleartext password authentication. A value without a method in it, such as requireAuth=, (a single comma), is affected the same way. An attacker positioned between the application and its server can ask for cleartext password authentication and receive the database password. A positive list such as requireAuth=scram-sha-256, and a partial exclusion such as requireAuth=!password,!md5, are enforced correctly. The property has no default value, so a deployment that does not set it is not affected. 42.7.14 fixes the problem: such a connection is refused with SQLState 08004, and a value without a method in it is rejected as invalid.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB