PYSEC-2026-452

See a problem?
Import Source
https://github.com/pypa/advisory-database/blob/main/vulns/pgadmin4/PYSEC-2026-452.yaml
JSON Data
https://api.osv.dev/v1/vulns/PYSEC-2026-452
Aliases
Published
2026-06-29T11:50:48.487645Z
Modified
2026-07-01T20:22:59.889588Z
Severity
  • 9.9 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H CVSS Calculator
  • 9.4 (Critical) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H CVSS Calculator
Summary
pgAdmin 4 server mode has an authorization vulnerability affecting Server Groups, Servers, Shared Servers, Background Processes, and Debugger modules
Details

Authorization vulnerability in pgAdmin 4 server mode affecting Server Groups, Servers, Shared Servers, Background Processes, and Debugger modules.

Multiple endpoints fetched user-owned objects without filtering by the requesting user's identity. An authenticated user could access another user's private servers, server groups, background processes, and debugger function arguments by guessing object IDs.

Additionally, the Shared Servers feature contained multiple issues including credential leakage (passexeccmd, passfile, SSL keys), privilege escalation via writable passexeccmd (a shell command executed when establishing the connection) allowing arbitrary command execution in the owner's process context, and owner-data corruption via SQLAlchemy session mutations. Several owner-only fields (passexeccmd, passexecexpiration, dbres, dbrestype) were writable by non-owners through the API, and additional fields (kerberosconn, tags, postconnectionsql) lacked per-user persistence so non-owner edits mutated the owner's record.

Fix centralises access control via a new serveraccess module, scopes all user-owned models with a UserScopedMixin, returns HTTP 410 from connectionmanager when access is denied in server mode, suppresses owner-only fields for non-owners across the merge / API response / ServerManager paths, and adds an explicit owner-only write guard. The remediation landed in two pull requests; both are referenced.

This issue affects pgAdmin 4: before 9.15.

References

Affected packages

PyPI / pgadmin4

Package

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
9.15

Affected versions

4.*
4.20
4.22
4.23
4.24
4.25
4.26
4.27
4.28
4.29
4.30
5.*
5.0
5.1
5.2
5.3
5.4
5.5
5.6
5.7
6.*
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
6.21
7.*
7.0
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
8.*
8.0
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
8.13
8.14
9.*
9.0
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14

Database specific

source
"https://github.com/pypa/advisory-database/blob/main/vulns/pgadmin4/PYSEC-2026-452.yaml"