Vulnerability Details CVE-2026-17348
In SERVER mode, pgAdmin 4 enforces authentication per route via the @pga_login_required decorator; the application's before_request hook only handles desktop-mode auto-login and the Kerberos/Webserver-auth redirect, so any route shipped without the decorator is reachable without authentication (CWE-306). This is the same defect class previously fixed as CVE-2026-12046 (the sqleditor close/update_connection routes).
A follow-up sweep, prompted by a report describing an incomplete fix for CVE-2026-12046, found further routes missing @pga_login_required: the Constraints blueprint's nodes and proplist (object listing) routes and its delete route (a state-mutating DELETE that removes table constraints); preferences.get_all_cli (GET, discloses all CLI-settable preference values); debugger.close (DELETE); and schema_diff.close (DELETE). An unauthenticated network client could therefore enumerate constraint metadata, delete table constraints, read preference values, and force-close debugger or schema-diff sessions belonging to other users, without ever authenticating.
Fix adds the missing @pga_login_required decorator (and the corresponding import to the Constraints module) to each of these routes. The change is decorator-only; no behavioral changes to the underlying handlers.
This issue affects pgAdmin 4 in SERVER mode: the Constraints and Debugger routes from 1.0, the Schema Diff close route from 4.18, and preferences.get_all_cli from 8.2, all before 9.17.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.002
EPSS Ranking 16.2%
CVSS Severity
CVSS v3 Score 6.5
Products affected by CVE-2026-17348
-
cpe:2.3:a:pgadmin:pgadmin_4:1.0
-
cpe:2.3:a:pgadmin:pgadmin_4:1.1
-
cpe:2.3:a:pgadmin:pgadmin_4:1.2
-
cpe:2.3:a:pgadmin:pgadmin_4:1.3
-
cpe:2.3:a:pgadmin:pgadmin_4:1.4
-
cpe:2.3:a:pgadmin:pgadmin_4:1.5
-
cpe:2.3:a:pgadmin:pgadmin_4:1.6
-
cpe:2.3:a:pgadmin:pgadmin_4:2.0
-
cpe:2.3:a:pgadmin:pgadmin_4:2.1
-
cpe:2.3:a:pgadmin:pgadmin_4:3.0
-
cpe:2.3:a:pgadmin:pgadmin_4:3.1
-
cpe:2.3:a:pgadmin:pgadmin_4:3.2
-
cpe:2.3:a:pgadmin:pgadmin_4:3.3
-
cpe:2.3:a:pgadmin:pgadmin_4:3.4
-
cpe:2.3:a:pgadmin:pgadmin_4:3.5
-
cpe:2.3:a:pgadmin:pgadmin_4:3.6
-
cpe:2.3:a:pgadmin:pgadmin_4:4.0
-
cpe:2.3:a:pgadmin:pgadmin_4:4.1
-
cpe:2.3:a:pgadmin:pgadmin_4:4.10
-
cpe:2.3:a:pgadmin:pgadmin_4:4.11
-
cpe:2.3:a:pgadmin:pgadmin_4:4.12
-
cpe:2.3:a:pgadmin:pgadmin_4:4.13
-
cpe:2.3:a:pgadmin:pgadmin_4:4.14
-
cpe:2.3:a:pgadmin:pgadmin_4:4.15
-
cpe:2.3:a:pgadmin:pgadmin_4:4.16
-
cpe:2.3:a:pgadmin:pgadmin_4:4.17
-
cpe:2.3:a:pgadmin:pgadmin_4:4.18
-
cpe:2.3:a:pgadmin:pgadmin_4:4.19
-
cpe:2.3:a:pgadmin:pgadmin_4:4.2
-
cpe:2.3:a:pgadmin:pgadmin_4:4.20
-
cpe:2.3:a:pgadmin:pgadmin_4:4.21
-
cpe:2.3:a:pgadmin:pgadmin_4:4.22
-
cpe:2.3:a:pgadmin:pgadmin_4:4.23
-
cpe:2.3:a:pgadmin:pgadmin_4:4.24
-
cpe:2.3:a:pgadmin:pgadmin_4:4.25
-
cpe:2.3:a:pgadmin:pgadmin_4:4.26
-
cpe:2.3:a:pgadmin:pgadmin_4:4.27
-
cpe:2.3:a:pgadmin:pgadmin_4:4.28
-
cpe:2.3:a:pgadmin:pgadmin_4:4.29
-
cpe:2.3:a:pgadmin:pgadmin_4:4.3
-
cpe:2.3:a:pgadmin:pgadmin_4:4.30
-
cpe:2.3:a:pgadmin:pgadmin_4:4.4
-
cpe:2.3:a:pgadmin:pgadmin_4:4.5
-
cpe:2.3:a:pgadmin:pgadmin_4:4.6
-
cpe:2.3:a:pgadmin:pgadmin_4:4.7
-
cpe:2.3:a:pgadmin:pgadmin_4:4.8
-
cpe:2.3:a:pgadmin:pgadmin_4:4.9
-
cpe:2.3:a:pgadmin:pgadmin_4:5.0
-
cpe:2.3:a:pgadmin:pgadmin_4:5.1
-
cpe:2.3:a:pgadmin:pgadmin_4:5.2
-
cpe:2.3:a:pgadmin:pgadmin_4:5.3
-
cpe:2.3:a:pgadmin:pgadmin_4:5.4
-
cpe:2.3:a:pgadmin:pgadmin_4:5.5
-
cpe:2.3:a:pgadmin:pgadmin_4:5.6
-
cpe:2.3:a:pgadmin:pgadmin_4:5.7
-
cpe:2.3:a:pgadmin:pgadmin_4:6.0
-
cpe:2.3:a:pgadmin:pgadmin_4:6.1
-
cpe:2.3:a:pgadmin:pgadmin_4:6.10
-
cpe:2.3:a:pgadmin:pgadmin_4:6.11
-
cpe:2.3:a:pgadmin:pgadmin_4:6.12
-
cpe:2.3:a:pgadmin:pgadmin_4:6.13
-
cpe:2.3:a:pgadmin:pgadmin_4:6.14
-
cpe:2.3:a:pgadmin:pgadmin_4:6.15
-
cpe:2.3:a:pgadmin:pgadmin_4:6.16
-
cpe:2.3:a:pgadmin:pgadmin_4:6.17
-
cpe:2.3:a:pgadmin:pgadmin_4:6.18
-
cpe:2.3:a:pgadmin:pgadmin_4:6.19
-
cpe:2.3:a:pgadmin:pgadmin_4:6.2
-
cpe:2.3:a:pgadmin:pgadmin_4:6.20
-
cpe:2.3:a:pgadmin:pgadmin_4:6.21
-
cpe:2.3:a:pgadmin:pgadmin_4:6.3
-
cpe:2.3:a:pgadmin:pgadmin_4:6.4
-
cpe:2.3:a:pgadmin:pgadmin_4:6.5
-
cpe:2.3:a:pgadmin:pgadmin_4:6.6
-
cpe:2.3:a:pgadmin:pgadmin_4:6.7
-
cpe:2.3:a:pgadmin:pgadmin_4:6.8
-
cpe:2.3:a:pgadmin:pgadmin_4:6.9
-
cpe:2.3:a:pgadmin:pgadmin_4:7.0
-
cpe:2.3:a:pgadmin:pgadmin_4:7.1
-
cpe:2.3:a:pgadmin:pgadmin_4:7.2
-
cpe:2.3:a:pgadmin:pgadmin_4:7.3
-
cpe:2.3:a:pgadmin:pgadmin_4:7.4
-
cpe:2.3:a:pgadmin:pgadmin_4:7.5
-
cpe:2.3:a:pgadmin:pgadmin_4:7.6
-
cpe:2.3:a:pgadmin:pgadmin_4:7.7
-
cpe:2.3:a:pgadmin:pgadmin_4:7.8
-
cpe:2.3:a:pgadmin:pgadmin_4:8.0
-
cpe:2.3:a:pgadmin:pgadmin_4:8.1
-
cpe:2.3:a:pgadmin:pgadmin_4:8.10
-
cpe:2.3:a:pgadmin:pgadmin_4:8.11
-
cpe:2.3:a:pgadmin:pgadmin_4:8.12
-
cpe:2.3:a:pgadmin:pgadmin_4:8.13
-
cpe:2.3:a:pgadmin:pgadmin_4:8.14
-
cpe:2.3:a:pgadmin:pgadmin_4:8.2
-
cpe:2.3:a:pgadmin:pgadmin_4:8.3
-
cpe:2.3:a:pgadmin:pgadmin_4:8.4
-
cpe:2.3:a:pgadmin:pgadmin_4:8.5
-
cpe:2.3:a:pgadmin:pgadmin_4:8.6
-
cpe:2.3:a:pgadmin:pgadmin_4:8.7
-
cpe:2.3:a:pgadmin:pgadmin_4:8.8
-
cpe:2.3:a:pgadmin:pgadmin_4:8.9
-
cpe:2.3:a:pgadmin:pgadmin_4:9.0
-
cpe:2.3:a:pgadmin:pgadmin_4:9.1
-
cpe:2.3:a:pgadmin:pgadmin_4:9.10
-
cpe:2.3:a:pgadmin:pgadmin_4:9.11
-
cpe:2.3:a:pgadmin:pgadmin_4:9.12
-
cpe:2.3:a:pgadmin:pgadmin_4:9.13
-
cpe:2.3:a:pgadmin:pgadmin_4:9.14
-
cpe:2.3:a:pgadmin:pgadmin_4:9.15
-
cpe:2.3:a:pgadmin:pgadmin_4:9.16
-
cpe:2.3:a:pgadmin:pgadmin_4:9.2
-
cpe:2.3:a:pgadmin:pgadmin_4:9.3
-
cpe:2.3:a:pgadmin:pgadmin_4:9.4
-
cpe:2.3:a:pgadmin:pgadmin_4:9.5
-
cpe:2.3:a:pgadmin:pgadmin_4:9.6
-
cpe:2.3:a:pgadmin:pgadmin_4:9.7
-
cpe:2.3:a:pgadmin:pgadmin_4:9.8
-
cpe:2.3:a:pgadmin:pgadmin_4:9.9