Skip to main content

pgAdmin 4 CVE-2026-116247

| EUVDEUVD-2026-114388 HIGH
Insufficiently Protected Credentials (CWE-522)
2026-10-30 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-47h8-x372-g8v3
7.1
CVSS 4.0 · Vendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege pgAdmin user (server mode)
  2. Delivery
    Define/open server lacking passfile or client cert
  3. Exploit
    pgAdmin omits parameter, libpq falls back to service-account files
  4. Execution
    Connect to PostgreSQL as service account
  5. Impact
    Read/write database data with stolen credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
Exploitation Conditions

Requires pgAdmin 4 running in server (multi-user web) mode - desktop mode is explicitly unaffected. The attacker must be an already-authenticated pgAdmin user (PR:L) and must target a server definition for which no password file, client certificate, or client key is configured, or whose configured path cannot be found. The exploitation only succeeds if the OS account running pgAdmin actually holds the libpq default credential files (~/.pgpass, ~/.postgresql/postgresql.crt and postgresql.key) or the PGPASSFILE/PGSSLCERT/PGSSLKEY environment variables, and for the utility path a pg_service.conf entry or a maintenance-database-name-as-connection-string consumed by pg_dumpall can reintroduce the same files. For the certificate case, the attacker needs only a copy of the service account's public certificate, since libpq pairs it with the private key. Limiting factors: server mode only, prior authenticated access, the non-default presence of service-account credential files, and versions before 9.19.

Impact

This is a genuine but conditional credential-exposure issue (CWE-522), not a drive-by remote code execution. The input provides no EPSS score, no CISA KEV listing, and no proof-of-concept - the only references are the fix commit and the tracking issue on GitHub, so there is no public exploit identified at time of analysis. The vuln.today decision label is 'this_week', consistent with a medium-high but non-emergency priority. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:N) is self-consistent with the description: it is network-reachable but requires an already-authenticated low-privilege pgAdmin user (PR:L), carries a real attack requirement (AT:P) because the service account must actually have the default libpq credential files present in its home directory or environment, and is high-complexity (AC:H) because it depends on that non-default state plus a server defined without its own passfile/cert/key. The high confidentiality/integrity impact on the subsequent system (VC:H/SC:H/SI:H) reflects that a successful attacker connects to a PostgreSQL server as the pgAdmin service account. Net: a real priority for multi-tenant server-mode pgAdmin deployments where the OS account holds saved database credentials, but the preconditions (server mode, existing service-account credential files, a misconfigured/absent per-user credential) meaningfully narrow real-world exploitability. Desktop mode is explicitly unaffected.

Exploit ScenarioDerived

In a shared server-mode pgAdmin 4 instance, a low-privileged authenticated user opens or registers a server whose password file and client certificate/key are not set (or point to a missing file). Because pgAdmin omitted those parameters, libpq silently falls back to the OS service account's ~/.pgpass or ~/.postgresql client certificate/key, letting that user authenticate to the target PostgreSQL server using the service account's stored secrets - and supplying only a copy of the public certificate is enough for libpq to pair it with the service account's private key. No public exploit code is identified; the only published artifacts are the vendor fix commit and issue.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 30, 2026

pgAdmin 4 in server (multi-user web) mode before 9.19 lets any already-authenticated pgAdmin user reach credential material belonging to the OS service account that runs pgAdmin. When a server definition has no password file, client certificate or client key configured - or the configured path cannot be found - pgAdmin omits the parameter and libpq falls back to its defaults (~/.pgpass, ~/.postgresql/postgresql.crt and postgresql.key, or PGPASSFILE/PGSSLCERT/PGSSLKEY), so a connection can be made with the service account's saved passwords or client certificate; supplying only a copy of the public certificate is enough for libpq to pair it with the service account's private key. The flaw also resurfaces through utility paths, where a pg_service.conf entry or a maintenance database name interpreted as a connection string by pg_dumpall can reintroduce the same files. Exploitation is conditional on server mode, prior authenticated access, and the non-default presence of those credential files on the service account; no public exploit was identified at time of analysis, and the vendor fix is released in 9.19 (CWE-522, assessed CVSS:3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N).

RemediationAI

Vendor-released patch: pgAdmin 4 9.19. Upgrade any server-mode deployment to 9.19 or later, where the upstream commit (https://github.com/pgadmin-org/pgadmin4/commit/32db693198f28b78fe2af12a726b80a68eb78cb2, tracked in https://github.com/pgadmin-org/pgadmin4/issues/10652) ensures each credential parameter carries an explicit value in server mode - the user's own file or an unopenable path - in the connection string, in the environment of spawned utilities, and in the --dbname connection string that outranks a pg_service.conf entry, with desktop mode left as it was. Upgrading is the only complete fix described by the available evidence; no interim workaround is documented, so exposure before upgrade is bounded by the exploitation prerequisites rather than by a configuration toggle - the issue is reachable only in server mode, only by an already-authenticated pgAdmin user, and only on server definitions lacking a password file, client certificate or client key (or pointing at a path that cannot be found) while the pgAdmin service account actually holds ~/.pgpass, ~/.postgresql/postgresql.crt and postgresql.key or sets PGPASSFILE, PGSSLCERT and PGSSLKEY. Because no workaround is published, treat server-mode instances below 9.19 as carrying the residual risk until patched and confirm the running version rather than assuming a package update has landed.

Affected VersionsENISA

pgAdmin 4 0 <9.19

Affected Packages

euvd pgadmin_4 fix: 9.19

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-522, insufficiently protected credentials, arising from how pgAdmin 4 constructs libpq connection parameters rather than from a memory-safety or injection flaw. libpq resolves several credential-related parameters implicitly: if passfile/PGPASSFILE, sslcert/PGSSLCERT or sslkey/PGSSLKEY are not supplied, it uses the defaults in the home directory of the process's operating-system account. Because pgAdmin runs utilities and connections under the service account in server mode, an omitted parameter silently promoted the service account's private credential files into a user-initiated connection. The client-certificate case is notable: libpq accepts a public certificate and pairs it with the corresponding private key, so a user holding only a copy of the service account's public certificate could still complete certificate authentication. The utility surface - background processes, view refresh, subscription connections and pg_dumpall invoked with a maintenance database name parsed as a connection string - extended the exposure beyond the interactive connection, and a pg_service.conf entry could re-supply the same files. The upstream commit 32db693198f28b78fe2af12a726b80a68eb78cb2 introduces utility_conninfo/utility_connection_params and client_files_isolated helpers so that in server mode each of these parameters is given an explicit value - the user's own file or a path that can never be opened - in the connection string, in the environment of the utilities, and in the --dbname connection string that takes precedence over a service entry. Desktop mode logic is intentionally unchanged. No CPE identifiers were supplied; affected code is the pgAdmin 4 web/browser backend (server mode) shipping before 9.19.

Know when Pgadmin 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 7.1 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N
vuln.today AI 8.2 HIGH

Authenticated low-privilege server-mode user (PR:L), dependent on service-account credential files existing (AC:H); stolen creds reach the database (scope change, C:H/I:H), with no availability impact.

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

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

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

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 21:18 EUVD
CVE Published
Oct 30, 2026 - 20:17 cve.org
HIGH 7.1

DescriptionCVE.org

When a server in pgAdmin 4 had no password file, client certificate or client key configured, or the configured one could not be found, pgAdmin left the parameter out of the connection and libpq fell back to the defaults of the operating-system account running pgAdmin: ~/.pgpass, ~/.postgresql/postgresql.crt and postgresql.key, or PGPASSFILE, PGSSLCERT and PGSSLKEY. In server mode any user could therefore connect to a server with the service account's saved passwords or client certificate, and supplying only a copy of its public certificate was enough for libpq to pair it with the service account's private key. A pg_service.conf entry, or a maintenance database name read as a connection string by pg_dumpall, could bring the same files back for the utilities.

The fix gives each of these parameters a value in server mode, the user's own file or otherwise a path that can never be opened, in the connection string, in the environment of the utilities and in the --dbname connection string that ranks above a service entry. Desktop mode is unchanged.

This issue affects pgAdmin 4: before 9.19.

Executive ViewAI

Why It Matters

CVE-2026-116247 is a high-severity credential exposure flaw in pgAdmin 4 (server mode) that lets any authenticated pgAdmin user reach OS service account credentials stored in libpq default files, potentially compromising the database infrastructure managed by that account. Leadership should care because an attacker with a low-privilege pgAdmin login could escalate to the service account's saved passwords or client certificates, impacting confidentiality and integrity of database connections across the organization.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict filesystem permissions and access to the service account's libpq default files; avoid reliance on default credential file fallback by explicitly configuring per-server credentials; audit and minimize authenticated pgAdmin users; monitor for anomalous database connections using the service account.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
pgAdmin widely used, but only multi-user server-mode deployments are affected
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2024-2044 CRITICAL POC
9.9 Mar 07

pgAdmin <= 8.3 is affected by a path-traversal vulnerability while deserializing users’ sessions in the session handling

CVE-2024-3116 CRITICAL POC
9.8 Apr 04

pgAdmin <= 8.4 is affected by a Remote Code Execution (RCE) vulnerability through the validate binary path API. Rated cr

CVE-2022-4223 HIGH POC
8.8 Dec 13

The pgAdmin server includes an HTTP API that is intended to be used to validate the path a user selects to external Post

CVE-2024-9014 MEDIUM POC
6.5 Sep 23

pgAdmin versions 8.11 and earlier are vulnerable to a security flaw in OAuth2 authentication. Rated medium severity (CVS

CVE-2025-12762 CRITICAL
9.8 Nov 13

Remote code execution in pgAdmin 4 (versions up to and including 9.9) lets an attacker who can get a crafted PLAIN-forma

CVE-2026-17351 CRITICAL
9.4 Jul 31

SQL injection sandbox escape in pgAdmin 4's AI Assistant (versions 9.13 through 9.16) lets an attacker break out of the

CVE-2026-17566 CRITICAL POC
9.4 Jul 31

OS command injection in pgAdmin 4 (all versions before 9.18) lets an authenticated user with the commonly-granted tools_

CVE-2026-116241 CRITICAL
9.4 Oct 30

Command injection in pgAdmin 4 before 9.19 lets an authenticated, low-privileged database user execute arbitrary operati

CVE-2024-4216 MEDIUM POC
5.4 May 02

pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS

CVE-2026-17349 CRITICAL
9.3 Jul 31

Cross-tenant credential theft in pgAdmin 4 (9.0 through 9.16) lets an authenticated non-owner user hijack another user's

CVE-2025-2946 CRITICAL
9.1 Apr 03

pgAdmin <= 9.1 is affected by a security vulnerability with Cross-Site Scripting(XSS). Rated critical severity (CVSS 9.1

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