CVE-2026-7813: Critical pgAdmin 4 Flaw
Critical CVSS (9.9) reachable over network.
TL;DR - CVE-2026-7813 is a critical authorization flaw in pgAdmin 4 server mode, affecting versions before 9.15. - Authenticated users may access or modify other users’ resources and potentially abuse Shared Server command fields. - Upgrade to 9.15 or later; CISA KEV and confirmed in-the-wild exploitation are not currently reported.
CVE-2026-7813 is a critical pgAdmin 4 vulnerability affecting server-mode deployments before version 9.15. The authorization flaw may allow authenticated users to cross ownership boundaries, access private resources, expose credentials, alter Shared Server configurations, and potentially execute commands in the pgAdmin process context.
What Is the Root Cause?
The principal root cause was inconsistent per-user authorization enforcement. Several endpoints retrieved or modified user-owned objects without reliably checking whether the requesting user owned, or was otherwise authorized to access, the referenced object. Predictable or guessable object identifiers could therefore become a cross-user access primitive.
The defect was not limited to read access. Shared Server records included fields that should have been restricted to the owner. Non-owners could potentially write owner-only fields such as passexec_cmd, passexec_expiration, db_res, and db_res_type. Other fields, including kerberos_conn, tags, and post_connection_sql, lacked adequate per-user persistence controls and could allow unauthorized modification of an owner’s record.
The passexec_cmd issue is especially important. This shell command executes when establishing a connection. If an attacker could replace it with attacker-controlled content and cause the relevant connection workflow to execute, commands could run in the pgAdmin owner’s process context. The precise impact depends on deployment permissions, operating-system confinement, service-account privileges, and whether the affected Shared Server is used.
Upstream remediation centralizes access control in a new server_access module and scopes user-owned models through a UserScopedMixin. The fix also adds an explicit owner-only write guard, suppresses owner-only fields for non-owners across merge and API-response paths, and changes connection_manage behavior in server mode to return HTTP 410 when access is denied.
For background on security frameworks used to structure remediation programs, see our NIST CSF glossary guide.
What Happened?
CVE-2026-7813 affects APIs handling user-owned objects, including Server Groups, Servers, Shared Servers, Background Processes, and Debugger modules. Requests were not consistently restricted to objects owned by the authenticated requester.
An authenticated user who could guess or obtain object identifiers could potentially access resources belonging to another user. Shared Servers add further impact: sensitive connection material could be exposed, owner-owned records could be changed, and a writable passexec_cmd value could enable shell command execution in the owner’s pgAdmin process context.
Analyst’s Take: Patch server-mode deployments first, especially those serving multiple authenticated users. The lack of a current KEV listing or confirmed exploitation does not offset the combination of cross-user access, credential exposure, configuration tampering, and a possible command-execution path.
| Field | Detail |
|---|---|
| CVE ID | CVE-2026-7813 |
| Product | pgAdmin 4, server mode |
| CVSS | 9.9, Critical |
| CVSS vector | Not included in the supplied NVD result; confirm the current NVD/CVE record before publication |
| Attack vector | Network-reachable server-mode API; exact CVSS component should be confirmed from the authoritative vector |
| Authentication | Authentication required; an authenticated user is the relevant threat model |
| Privileges required | Exact CVSS value was not supplied; impact concerns authenticated users with access to pgAdmin server mode |
| Patch available | Yes |
| Affected versions | pgAdmin 4 versions before 9.15 (< 9.15) |
| Fixed version | pgAdmin 4 9.15 |
| CISA KEV | No, as of 2026-11-11 |
The available information does not provide the complete CVSS vector string. Defenders should not infer missing vector components from the base score alone. The operational facts are clearer: the issue affects server-mode deployments, requires authentication, and can have confidentiality, integrity, and availability consequences.
Who Needs to Act?
Organizations running pgAdmin 4 server mode before version 9.15 should treat themselves as affected. The available advisory information identifies the affected range as:
pgAdmin 4 versions
< 9.15
The fixed release is:
pgAdmin 4 version
9.15
No narrower affected version range was identified in the supplied research material. Administrators should therefore assume that every earlier pgAdmin 4 release is affected unless the vendor’s current release documentation or package metadata establishes otherwise.
Risk is highest where pgAdmin is exposed to multiple authenticated users, contractors, developers, database teams, or tenants. A single-user, tightly isolated deployment still requires patching, but the cross-user authorization impact is more directly relevant to shared installations. Deployments should also be considered higher risk when pgAdmin runs with broad filesystem, database, or operating-system permissions.
Check the installed version using the package or container method appropriate to your deployment:
# Debian or Ubuntu package installations
dpkg-query -W -f='${Package} ${Version}\n' pgadmin4 pgadmin4-web 2>/dev/null
# RPM-based package installations
rpm -qa | grep -i '^pgadmin4'
# Container deployments: replace the image reference with your organization’s image
docker inspect --format '{{.Config.Image}}' pgadmin4 2>/dev/null
Package names and image tags vary by distribution and deployment model. Do not treat an absent package-manager result as proof that pgAdmin is not installed; verify systemd units, container manifests, Kubernetes workloads, and application directories as applicable.
Why This CVSS Score?
The supplied NVD result assigns CVE-2026-7813 a CVSS base score of 9.9, which places it in the Critical category. The score reflects the combination of a remotely reachable application interface, authentication-dependent access, and potentially severe confidentiality, integrity, and availability outcomes.
However, the exact CVSS vector string was not included in the supplied data. The attack-vector, attack-complexity, privileges-required, user-interaction, scope, confidentiality, integrity, and availability components should therefore be verified directly against the current NVD or CVE record before publishing a component-by-component interpretation.
Operationally, the score is understandable from the vulnerability behavior. An authenticated user may cross ownership boundaries to view private servers, groups, background processes, and debugger arguments. Shared Server weaknesses may disclose credentials or connection keys, permit unauthorized configuration changes, corrupt owner data, and potentially cause shell commands to execute in the pgAdmin process context.
The CVSS score should not be interpreted as evidence of active exploitation. CVSS measures technical severity and exploitability characteristics; it does not establish whether attackers are currently using the vulnerability. CISA does not currently list this CVE in the Known Exploited Vulnerabilities catalog.
Has CVE-2026-7813 Been Exploited?
Based on the supplied research, confirmed exploitation in the wild is not known. CVE-2026-7813 is currently not listed in CISA KEV, with on_kev: false, no KEV addition date, and no federal remediation deadline associated with the catalog.
A dedicated public proof of concept was also not identified in the retrieved sources. The public upstream remediation pull requests expose implementation details of the access-control changes, but that is not equivalent to a weaponized exploit or a validated end-to-end PoC.
| Question | Current assessment |
|---|---|
| CISA KEV listing | No |
| Confirmed in-the-wild exploitation | Not reported in the supplied data |
| Dedicated public PoC | Not identified |
| Public technical remediation details | Yes, through upstream pull requests #9830 and #9835 |
| Risk if no exploitation is known | Still Critical, particularly for shared server-mode deployments |
The absence of a KEV entry or public PoC should not be used as a reason to defer remediation. The affected functionality includes object authorization, credential-related fields, and a command-execution path. Defenders should assume that knowledgeable attackers could analyze the public patch and target exposed server-mode deployments.
Related Security Guidance
If investigation identifies suspicious persistence or low-level malware on systems connected to the affected environment, review our rootkit glossary guide for terminology and investigation context. Rootkits are not implied by CVE-2026-7813, but understanding the distinction can help incident responders classify host findings accurately.
Detection Guidance
Detection should begin with asset and version inventory. Identify every pgAdmin 4 server-mode instance, determine whether it is below 9.15, and map the authenticated users and groups that can reach it. Pay particular attention to installations exposed through reverse proxies, VPN portals, identity-aware proxies, or internet-facing web interfaces.
Review application and reverse-proxy logs for authenticated users accessing object endpoints associated with users or resources they do not normally administer. The exact URL structure and log format vary by pgAdmin version and deployment, so the following is a starting point rather than a universal signature:
# Search common web-server logs for pgAdmin object and connection-management paths
grep -Eai \\
'(/server_groups|/servers|/shared_servers|/background_processes|/debugger|connection_manage)' \\
/var/log/nginx/access.log /var/log/apache2/access.log 2>/dev/null
Look for repeated requests with changing numeric or UUID-like identifiers, access across many owners, unexpected HTTP 200 responses from an account that normally manages only its own objects, and unusual sequences involving Shared Server creation or connection operations. Also investigate failed authorization responses followed by successful requests for adjacent identifiers.
Technical Notes
The vulnerability concerns authorization context, so a useful detection query correlates the authenticated principal, requested object identifier, response status, and source address. A generic Splunk-style starting point is:
index=web OR index=pgadmin
(uri_path="*server_groups*" OR uri_path="*servers*" OR
uri_path="*shared_servers*" OR uri_path="*background_processes*" OR
uri_path="*debugger*" OR uri_path="*connection_manage*")
| stats count values(status) as statuses values(uri_path) as paths
min(_time) as first_seen max(_time) as last_seen
by user src_ip
| where count > 20 OR mvcount(statuses) > 1
Adapt field names and paths to the local reverse proxy and pgAdmin deployment. This query is not a vendor-provided detection rule and cannot prove exploitation by itself. It is intended to surface enumeration and unusual access patterns for investigation.
Search application data and backups for unexpected changes to Shared Server fields, especially:
passexec_cmdpassexec_expirationdb_resdb_res_typekerberos_conntagspost_connection_sql
A practical review should compare current records with known-good configuration exports and change-management records. Search for shell metacharacters, unexpected interpreters, references to writable temporary directories, or commands that invoke network utilities. Preserve evidence before modifying suspicious records.
Also review host telemetry for child processes spawned by the pgAdmin service account around connection-establishment events. Examples include unexpected shells, scripting runtimes, download utilities, archive tools, or outbound connections to unfamiliar destinations. Because no universal network signature was provided, host and application correlation is more reliable than a single IDS rule.
Remediation and Patching
The primary remediation is to upgrade pgAdmin 4 to version 9.15 or later. The affected range is all versions before 9.15 (< 9.15). Use the release and package channel approved for your environment, and verify after deployment that the running service—not only the downloaded artifact—reports the patched version.
For package-based deployments, the exact package names and repository configuration vary. A representative Debian or Ubuntu workflow is:
sudo apt-get update
sudo apt-get install --only-upgrade pgadmin4 pgadmin4-web
dpkg-query -W -f='${Package} ${Version}\n' pgadmin4 pgadmin4-web 2>/dev/null
For RPM-based systems, use the organization’s configured repository:
sudo dnf upgrade pgadmin4
rpm -qa | grep -i '^pgadmin4'
Do not run these commands blindly in production if pgAdmin is installed through a vendor-managed container, Python environment, appliance, or custom build. In those cases, deploy the image or package containing pgAdmin 4.9.15 or later according to the platform’s change process, then confirm the application version and restart the service if required.
Temporary Containment
If immediate upgrading is impossible, apply temporary containment:
- Restrict access to pgAdmin server mode to trusted administrative networks or an identity-aware proxy.
- Remove unnecessary authenticated users and groups.
- Disable or isolate Shared Servers where operationally possible.
- Prevent the pgAdmin service account from having unnecessary shell, filesystem, or database privileges.
- Review and remove suspicious Shared Server definitions and command fields.
- Rotate database passwords, private keys, SSL keys, and other connection secrets that may have been exposed.
- Preserve relevant logs and configuration snapshots before cleanup.
A temporary reverse-proxy restriction can reduce exposure, but it is not a patch. For example, an Nginx deployment might restrict the pgAdmin location to an approved management network:
location /pgadmin4/ {
allow 192.0.2.0/24; # Replace with the real administrative network
deny all;
proxy_pass http://pgadmin4_backend;
}
Validate the configuration and reload only after testing the change:
sudo nginx -t
sudo systemctl reload nginx
The upstream remediation was implemented in pull requests #9830 and #9835. These changes are useful for defenders reviewing the affected code paths, but organizations should deploy the supported 9.15 release or later rather than selectively copying code from pull requests.
After patching, perform a post-remediation review. Confirm that non-owners cannot retrieve or modify another user’s objects, inspect Shared Server records for unauthorized changes, rotate potentially exposed credentials, and monitor for renewed access attempts. If evidence suggests command execution or credential theft, treat the event as a possible compromise of both pgAdmin and connected database environments.
References
- NVD: CVE-2026-7813
- CVE.org: CVE-2026-7813
- GitHub Advisory Database: GHSA-h2x2-q2mc-24gw
- pgAdmin 4 pull request #9830
- pgAdmin 4 pull request #9835
- CISA Known Exploited Vulnerabilities Catalog
CISA KEV status and the CVSS vector should be rechecked against the current authoritative records before publication or final risk acceptance.
This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.