Description
libpq looks a connection service up in the service file of the operating-system account running pgAdmin 4, and an entry there can hold a password or name a password file or client certificate. In server mode any user could set a server's Service, or a "service" connection parameter, to one of those entries and connect with its credentials. A PGPASSWORD or PGSERVICE variable set for that account was likewise used by libpq for every connection without a value of its own and passed on to the utilities, and pg_dumpall read a maintenance database name such as "service=..." as a connection string.

The fix adds the SERVER_MODE_ALLOWED_SERVICES setting, empty by default: in server mode only a listed service can be used, the servicefile parameter is refused, and PGPASSWORD and PGSERVICE are removed from pgAdmin's environment at startup. The allowlist is checked again on the final connection string, and the pg_dumpall database name is wrapped as a connection string.

This issue affects pgAdmin 4: before 9.19.
Published: 2026-10-30
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: Unauthorized access through unfiltered service file credentials
Action: Immediate Patch
AI Analysis

Impact

libpq used by pgAdmin 4 reads a service entry from the operating‑system account’s service file. In server mode the application allows any user to set the service or service parameter to that entry, causing libpq to use stored passwords or certificates for authentication. Additionally, environment variables PGPASSWORD and PGSERVICE are automatically applied to connections that lack their own values, and utilities such as pg_dumpall treat the service name as a connection string. This behavior allows an attacker to obtain privileged database credentials or impersonate a database user without proper authorization, potentially leading to unauthorized data modification or disclosure.

Affected Systems

pgAdmin 4 versions prior to 9.19, released by pgAdmin.org, are affected. The issue exists across all supported operating systems where the application runs in server mode, as the vulnerability stems from libpq’s handling of service files and environment variables rather than platform‑specific code. The vulnerability applies to the operating‑system account under which pgAdmin 4 runs.

Risk and Exploitability

The CVSS score is 7.1, indicating a moderate to high severity. EPSS is not available, and the vulnerability is not listed in CISA KEV, suggesting limited known exploitation. The likely attack vector is local or application‑level manipulation of the service name or environment variables while pgAdmin runs in server mode. The fix introduces a SERVER_MODE_ALLOWED_SERVICES allowlist and removes environment variables during startup, mitigating the risk of credential leakage.

Generated by OpenCVE AI on October 30, 2026 at 22:10 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade pgAdmin 4 to version 9.19 or later to apply the SERVER_MODE_ALLOWED_SERVICES allowlist and environment‑variable removal fix.
  • If an upgrade is not yet possible, configure SERVER_MODE_ALLOWED_SERVICES to include only trusted service names and ensure no service entries contain passwords or certificates for privileged accounts.
  • Clear any PGPASSWORD or PGSERVICE variables from the environment where the pgAdmin process runs so that the application no longer inherits credentials during startup.

Generated by OpenCVE AI on October 30, 2026 at 22:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Pgadmin
Pgadmin pgadmin 4
Vendors & Products Pgadmin
Pgadmin pgadmin 4

Fri, 30 Oct 2026 20:15:00 +0000

Type Values Removed Values Added
Description libpq looks a connection service up in the service file of the operating-system account running pgAdmin 4, and an entry there can hold a password or name a password file or client certificate. In server mode any user could set a server's Service, or a "service" connection parameter, to one of those entries and connect with its credentials. A PGPASSWORD or PGSERVICE variable set for that account was likewise used by libpq for every connection without a value of its own and passed on to the utilities, and pg_dumpall read a maintenance database name such as "service=..." as a connection string. The fix adds the SERVER_MODE_ALLOWED_SERVICES setting, empty by default: in server mode only a listed service can be used, the servicefile parameter is refused, and PGPASSWORD and PGSERVICE are removed from pgAdmin's environment at startup. The allowlist is checked again on the final connection string, and the pg_dumpall database name is wrapped as a connection string. This issue affects pgAdmin 4: before 9.19.
Title pgAdmin 4: Connection services are not restricted in server mode
Weaknesses CWE-522
CWE-862
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N'}

cvssV4_0

{'score': 7.1, 'vector': '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'}


Subscriptions

Pgadmin Pgadmin 4
cve-icon MITRE

Status: PUBLISHED

Assigner: PostgreSQL

Published:

Updated: 2026-10-30T19:55:15.679Z

Reserved: 2026-10-25T16:26:16.419Z

Link: CVE-2026-116245

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-30T20:17:04.467

Modified: 2026-10-30T20:17:04.467

Link: CVE-2026-116245

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T22:15:14Z

Weaknesses
  • CWE-522

    Insufficiently Protected Credentials

  • CWE-862

    Missing Authorization