Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLog in as low-privileged pgAdmin user
-
DeliverySet server Service to host service entry
-
ExploitOverride service host to attacker server
-
Executionlibpq connects with inherited credentials
-
ImpactCapture exfiltrated password or certificate
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
|
| Exploitation Conditions | Exploitation is limited to pgAdmin 4 running in server (multi-user web) mode - desktop mode is explicitly not affected because any service may be used by the single local user there. It additionally requires that the operating-system account running pgAdmin has usable credentials for the attacker to inherit: a connection service file (~/.pg_service.conf, or a file named by PGSERVICEFILE/PGSYSCONFDIR) containing an entry with a password, password file, or client certificate, and/or PGPASSWORD or PGSERVICE environment variables set for that account, and/or pg_dumpall being invoked with a 'service=...' maintenance database name. The actor must be an authenticated pgAdmin user (CVSS PR:L), who then sets a server's Service, a 'service'/'servicefile' connection parameter, to one of those entries. Limiting factors: no such credentials present on the host account means nothing to steal; the attack is authenticated and not available to anonymous remote attackers; and it is high-complexity because it depends on host-side configuration the attacker cannot directly set. |
| Impact | This is a credential-exposure/privilege-escalation issue (CWE-522) scoped to pgAdmin 4 server mode, not a mass-exploitable remote flaw. The supplied CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:N, score 7.1 High) tells a consistent story: although the attack surface is network-reachable (AV:N), it requires an already-authenticated low-privileged pgAdmin user (PR:L), carries an attack requirement (AT:P) and high complexity (AC:H) because it depends on preconditions the attacker does not control - namely that the OS account running pgAdmin actually has a connection service file entry, PGPASSWORD/PGSERVICE set, or pg_dumpall in use. The high confidentiality and subsequent-system impact (VC:H, SC:H/SI:H) reflects that a user can harvest another identity's stored password/certificate and act on a database with it. No CISA KEV listing and no EPSS score were provided, so widespread opportunistic exploitation cannot be asserted; the only references are the fix commit and the GitHub issue, which are not working exploit code. Signals do not conflict: a moderately high severity for an authenticated multi-tenant abuse, with the vuln.today 'this_week' priority indicating it warrants prompt patching rather than emergency response. The main caveat is missing EPSS/KEV data, which limits confidence in real-world exploitation frequency. |
| Exploit ScenarioDerived | In a shared pgAdmin 4 server-mode deployment, a low-privileged but authenticated pgAdmin user creates or edits a server and sets its Service (or a 'service' connection parameter) to an entry present in the service account's ~/.pg_service.conf, causing libpq to connect using that entry's stored password, password file, or client certificate. By also overriding the entry's host, the user can redirect that connection to a PostgreSQL server they control and capture the inherited password/certificate. No public working exploit was identified at time of analysis; the available references are the vendor fix commit and the GitHub issue, not proof-of-concept exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
pgAdmin 4 server mode before 9.19 can let any authenticated pgAdmin user inherit libpq credentials belonging to the operating-system account that runs pgAdmin, by setting a server's Service or a service/servicefile connection parameter to a service entry that holds a password, password file, or client certificate. The same exposure applies to PGPASSWORD/PGSERVICE inherited by libpq and to pg_dumpall interpreting a maintenance database name such as service=... as a connection string; desktop mode is not affected. No public exploit was identified at time of analysis, and the issue is fixed in 9.19.
RemediationAI
Vendor-released patch: pgAdmin 4 9.19. Upgrade to 9.19 or later; after upgrading, SERVER_MODE_ALLOWED_SERVICES defaults to empty, so no libpq services are permitted in server mode, the servicefile parameter is refused, and PGPASSWORD/PGSERVICE are removed from pgAdmin's environment at startup. Only populate SERVER_MODE_ALLOWED_SERVICES if a specific service is required, recognizing that listing a service shares its credentials with every pgAdmin user. If upgrading is not immediately possible, run pgAdmin in desktop mode rather than server mode, or remove credential-bearing entries from the pgAdmin OS account's ~/.pg_service.conf or PGSERVICEFILE/PGSYSCONFDIR and unset PGPASSWORD/PGSERVICE for that account; the trade-off is loss of passwordless/service-based connections, and this does not address every path such as user-controlled service=... maintenance database names passed to pg_dumpall. See the fix commit https://github.com/pgadmin-org/pgadmin4/commit/a0c8f4857f732c6f5e5bacf4b289b811bb5c6a06 and issue https://github.com/pgadmin-org/pgadmin4/issues/10654.
Affected VersionsENISA
Affected Packages
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
pgAdmin 4 server mode is a multi-user web deployment where libpq connections are made on behalf of pgAdmin users using the environment and files of the OS account running pgAdmin. libpq resolves service names from ~/.pg_service.conf or PGSERVICEFILE/PGSYSCONFDIR, and can take a password from the service entry, a password file, a client certificate, or PGPASSWORD/PGSERVICE in the environment. The flaw is CWE-522 (insufficiently protected credentials): server mode did not prevent a user-supplied Service value or service/servicefile connection parameter from resolving credentials of the service account, and pg_dumpall treated a maintenance database name like service=... as a connection string. The upstream fix introduces SERVER_MODE_ALLOWED_SERVICES (empty by default), refuses servicefile in server mode, removes PGPASSWORD and PGSERVICE from pgAdmin's environment at startup, rechecks the allowlist on the final connection string, and wraps the pg_dumpall database name as a connection string. The assessed vector (AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N) reflects an authenticated user and high complexity because exploitation depends on host-side configuration the attacker cannot directly set.
Know when the next one hits your stack
- 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
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
Authenticated low-privileged pgAdmin user (PR:L) exploiting host-dependent service-file/env credentials (AC:H); stolen credentials act on a separate database, crossing scope (S:C) with high confidentiality and integrity impact.
Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).
CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
Lifecycle Timeline
2DescriptionCVE.org
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.
Executive ViewAI
CVE-2026-116245 affects pgAdmin 4 server mode deployments, allowing any authenticated user to inherit the operating system account's libpq credentials, potentially granting unauthorized access to downstream PostgreSQL databases. This is a high-severity, unpatched vulnerability that affects organizations relying on pgAdmin for database administration, and leadership should prioritize mitigation to prevent credential compromise and lateral movement within database environments.
No vendor-released patch identified at time of analysis. Interim mitigations include limiting pgAdmin server mode access to trusted networks, running pgAdmin with a low-privilege OS account, enforcing strong authentication and authorization, removing stored service entries with credentials, and monitoring for anomalous database connections. Apply vendor patch (pgAdmin 4 version 9.19 or later) as soon as it becomes available.
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.
EUVD-2026-114386
GHSA-mxqp-rrfg-8vgh
NVD
CVE.org
EPSS
Exploit-DB