Skip to main content

PostgreSQL JDBC Driver CVE-2026-107314

MEDIUM
Not Failing Securely ('Failing Open') (CWE-636)
2026-10-07 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
5.9
CVSS 3.1 · Vendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain man-in-the-middle position on app-to-DB path
  2. Exploit
    Target driver misconfigured to exclude all auth methods
  3. Execution
    Impersonate server, request cleartext password auth
  4. Impact
    Capture 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).

CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

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

EPSS Score
0.3%
Top 84% exploitable
Prevalence
High
standard PostgreSQL JDBC driver, widely embedded in Java/enterprise applications
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium
NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-1094 HIGH POC
8.1 Feb 13

PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl

CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2013-1899 MEDIUM POC
6.5 Apr 04

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

CVE-2026-20253 CRITICAL POC
9.8 Jun 10

Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.

CVE-2026-9586 CRITICAL POC
9.3 Jul 17

Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar

CVE-2017-7546 CRITICAL
9.8 Aug 16

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

CVE-2015-1352 MEDIUM POC
5.0 Mar 30

The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t

CVE-2024-10553 CRITICAL POC
9.8 Mar 20

A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra

CVE-2019-9193 HIGH POC
7.2 Apr 01

In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve

CVE-2026-40887 CRITICAL POC
9.1 Apr 14

Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the

CVE-2022-24760 CRITICAL POC
10.0 Mar 12

Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot

CVE-2025-56157 CRITICAL POC
9.8 Dec 18

Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy