# CVE-2026-17350: PostgreSQL pgAdmin 4 missing authorization in per-tool permissions

Source: https://junglewise.ai/threats/cve-2026-17350-postgresql-pgadmin-4-missing-authorization-in-per-tool  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-31. Updated: 2026-07-31  
License: CC BY 4.0 with a link back

CVE-2026-17350 · Severity: medium · CVSS 5.4 · Published 2026-07-31

pgAdmin 4, a popular management tool for PostgreSQL databases, contains a flaw in how it restricts access to specific features like the Query Tool, Backup, and PSQL console. An authenticated user who has been intentionally restricted from using certain tools by an administrator can bypass these restrictions and use them anyway. This allows users to perform actions or view data using features they were supposed to be blocked from, though they are still limited by their underlying database permissions.

Technologies: [PostgreSQL pgAdmin 4](https://junglewise.ai/threats/technologies/pgadmin-4). Vendors: [PostgreSQL](https://junglewise.ai/threats/vendors/postgresql).

## Quick answers

**Is CVE-2026-17350 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-17350 being exploited in the wild.

**How severe is CVE-2026-17350?** Medium severity, with a CVSS score of 5.4, published 31 July 2026.

**Which products and versions are affected?** PostgreSQL pgAdmin 4 9.3 to 9.16.

**Is there a fix for CVE-2026-17350?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-17350 attacked?** It is attacked over the network, in a network appliance.

**Am I affected by CVE-2026-17350?** Check whether you run PostgreSQL pgAdmin 4 at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

A missing authorization vulnerability exists in pgAdmin 4's per-tool permission system introduced in version 9.3. While the 'permissions_required' decorator was applied to the initial entry point of various tools (Query Tool, Grant Wizard, Schema Diff, ERD, PSQL, Debugger, etc.), subsequent backend routes and Socket.IO event handlers only checked for general authentication ('pga_login_required' or 'socket_login_required'). An authenticated attacker with a valid database connection can bypass tool-level restrictions to execute queries, generate DDL, or initiate backup/restore jobs. The fix introduces a new 'socket_permissions_required' decorator and ensures all relevant routes and socket handlers enforce the specific tool permissions.

## Affected products

- PostgreSQL pgAdmin 4 9.3 to 9.16

## Timeline

- 2026-07-31: advisory: CVE-2026-17350 published
- 2026-07-31: disclosed

## References

- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/authenticate/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/authenticate/__init__.py)
- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/sqleditor/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/sqleditor/__init__.py)
- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/grant_wizard/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/grant_wizard/__init__.py)
- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/schema_diff/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/schema_diff/__init__.py)
- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/erd/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/erd/__init__.py)
- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/psql/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/psql/__init__.py)
- [https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/debugger/__init__.py](https://github.com/pgadmin-org/pgadmin4/blob/master/web/pgadmin/tools/debugger/__init__.py)

## Related threats

- [PostgreSQL pgAdmin 4 credential leak in Workspaces adhoc connection](https://junglewise.ai/threats/cve-2026-17349-postgresql-pgadmin-4-credential-leak-in-workspaces-adhoc)
- [PostgreSQL pgAdmin 4 stored XSS in error and plan rendering](https://junglewise.ai/threats/cve-2026-12048-postgresql-pgadmin-4-stored-xss-in-error-and-plan-rendering)
- [PostgreSQL pgAdmin 4 HTML injection in cloud deployment module](https://junglewise.ai/threats/cve-2026-12047-postgresql-pgadmin-4-html-injection-in-cloud-deployment-module)
- [PostgreSQL pgAdmin 4 account lockout bypass in login views](https://junglewise.ai/threats/cve-2026-7820-postgresql-pgadmin-4-account-lockout-bypass-in-login-views)
- [PostgreSQL pgAdmin 4 symbolic-link path traversal in File Manager](https://junglewise.ai/threats/cve-2026-7819-postgresql-pgadmin-4-symbolic-link-path-traversal-in-file-manager)
