CVE-2026-17350
If you're running pgAdmin versions 9.3 through 9.17, you have a permission bypass that stems from how per-tool role-based access was originally implemented: developers applied the `permissions_required` decorator only to the primary UI initialization route for each tool, treating access control as something you bypass by hitting the tool's backend endpoints directly. The same gap exists in the Socket.IO layer — only `socket_login_required` was enforced, not `socket_permissions_required`, meaning authenticated users could reach tool functionality they were never granted permission to access. The fix applies `permissions_required` as the outermost decorator on every backend route for the affected tools, plus a new `socket_permissions_required` for Socket.IO handlers. During remediation, five additional tools were discovered that had the same gap: ERD, PSQL, Debugger, Backup, Restore, Maintenance, and Import/Export. If you're auditing your deployment, check that all of these have the proper decorators applied — don't assume the original report captured the full surface area. A few practical steps: verify your pgAdmin version immediately if you're on 9.x. Review your role-permission mappings in the server menu to confirm which tools each role should access. The vulnerability doesn't escalate database privileges — an unauthorized user still connects with their own database credentials — but it does violate administrative policy decisions about which tools users can launch. That's a workflow security failure, not a data integrity one, but it matters if your organization relies on pgAdmin's role system to restrict access to sensitive tools like the interactive psql terminal or backup utilities. One thing the patch doesn't structurally prevent: every new route added to these tools will require developers to remember both decorators in the correct order. Consider adding a lint rule or code review checklist for any future Socket.IO or HTTP route additions to these modules.
Reviewed through automated stages and approved by a human before publication.