pgAdmin 4 v9.17 dropped on July 30, 2026, addressing seven security vulnerabilities including critical command injection and credential cloning flaws, with three stemming from incomplete patches in the previous release. The update introduces four practical enhancements, led by a new row count cap for the View Data action that helps prevent accidental full-table scans on large databases. Under the hood, the application upgrades to Electron 43.1.1, pins Yarn to 4.15.0, and implements stricter supply chain hardening across the macOS build process and GitHub Actions. Operators running server mode, especially those using shared servers or external authentication, should apply the patch immediately.
pgAdmin 4 v9.17 Slaps Seven CVEs, Adds Row Cap for View Data
The latest update brings four new features and a cluster of security patches, including fixes for command injection and credential cloning.
pgAdmin 4 v9.17 dropped on July 30, 2026, and it's doing its best to play catch-up with a cluster of seven security vulnerabilities. The release packs four new features and 28 total changes, but if you're running server mode, the CVE list is where you'll be staring for a while.
There's a lot of severity here. The MASTER_PASSWORD_HOOK fix is critical. If you're using external auth and that hook has a %u placeholder, shell metacharacters in usernames from OAuth2, Kerberos, or webserver auth could give an attacker remote code execution as the pgAdmin service account. That's a footgun if you didn't audit your hook config.
Then there's CVE-2026-17349, where an adhoc server connection could clone another user's stored credentials. A non-owner who clones a shared server gets the password, the tunnel password, and the "save password" flag. If you've got shared servers, this one matters.
Seven CVEs. That's a lot for a minor version.
A recurring theme in this release? Three of these CVEs are incomplete fixes for vulnerabilities first patched in v9.16 just a month ago. The initial patches had edge-case gaps.
CVE-2026-17351 is a lexer-differential bypass of the AI read-only guard. The sqlparse library's string-literal lexing disagreed with PostgreSQL's parser under standard_conforming_strings = on, allowing a crafted multi-statement payload to smuggle a COMMIT past the read-only wrapper.
CVE-2026-17346 is another SQL injection follow-up. An apostrophe in a table or index name could break out of unescaped template interpolation in the Index Statistics view.
And CVE-2026-17348 calls out missing @pga_login_required decorators on several Constraints, Preferences, Debugger, and Schema Diff routes. Unauthenticated access was possible in server mode.
The incomplete-fix pattern signals active probing. It suggests real-world adversarial scrutiny against pgAdmin's AI and multi-user features.
A Hefty Dose of Operational Hygiene
On the feature side, the row count cap for "View Data" is probably going to save some DBA jobs.
You can now set a preference to cap the number of rows fetched by the plain "View Data" action. It prevents accidental full-table SELECT * scans on large tables. Keep in mind that this only applies to the plain action, so query-heavy users can still fetch what they need if they know what they're doing.
The row cap prevents disasters, though it does add one more preference to manage.
If you're doing spatial work, the Geometry Viewer now supports custom XYZ tile providers. You can configure URL templates, names, CRS, attribution, and max zoom levels. It's a nice nod to users visualizing geometry data with private or specialized tile services.
The Helm chart gets an opt-in Gateway API HTTPRoute template as an alternative to the traditional Kubernetes Ingress resource. If you're running on AWS Gateway API or Istio, this helps you stick to modern cloud-native ingress patterns.
The HTTP access log now records the authenticated user's identity, which improves audit trails for server-mode deployments.
Under the Hood
The app bundle is running Electron 43.1.1 (up from 42.3.3) and React 19.2.7. Yarn is pinned to 4.15.0 via the packageManager field.
Supply chain hardening is a theme here. macOS builds now fail if a bundled library escapes the bundle. GitHub Actions are pinned to commit SHAs instead of mutable branch refs. It's getting tighter.
Supported databases are PostgreSQL 14 through 18, plus EDB Advanced Server 14 through 18. Bundled psql/pg_dump/pg_restore is 18.4.
Head here to the release notes for the full list of bug fixes and housekeeping items.
If you're running server mode with shared servers or external auth, update immediately. Audit your MASTER_PASSWORD_HOOK configs. Check those route decorators.
And if you're a power user who loves SELECT *, you might want to reconsider. The row cap is here to stay.
