Top/Articles/Critical pgAdmin Flaw CVE-2026-17566 Lets Users Take Over the Server: Update to v9.17
pgadmin-cve-cover-en

Critical pgAdmin Flaw CVE-2026-17566 Lets Users Take Over the Server: Update to v9.17

pgAdmin, the standard tool for managing PostgreSQL databases, has seven vulnerabilities, led by a severity-9.9 flaw that lets a logged-in user take over the server with ordinary permissions. Exploitation could run arbitrary commands on the database server. No attacks confirmed yet; here is who is affected and how to update to v9.17.

NewsPublished Aug. 1, 2026 Updated today
Table of contents
Key takeaways

pgAdmin, the standard tool for managing PostgreSQL databases, has seven vulnerabilities, led by a severity-9.9 flaw that lets a logged-in user take over the server with ordinary permissions. Exploitation could run arbitrary commands on the database server. No attacks confirmed yet; here is who is affected and how to update to v9.17.

"pgAdmin 4," the standard software for managing PostgreSQL databases, has been found to contain seven vulnerabilities, including a critical one that can let an attacker take over the server. On July 31, 2026, the development team released the latest version, "v9.17," which fixes all of them at once.

The most dangerous is "CVE-2026-17566," rated 9.9 out of 10 for severity. A user who can log in to pgAdmin can run arbitrary commands on the server hosting the database, using nothing more than the permissions normally granted to them. There are no reports of active exploitation so far, but affected environments are advised to update to the latest version promptly.

This article breaks down what the seven issues are, whether your environment is affected, and what you should do, in plain language.

What pgAdmin is, and what happened

pgAdmin 4 is a management tool for operating the open-source database "PostgreSQL" from a browser or app window. Tasks such as creating tables, searching data, and taking backups can be done with mouse operations instead of typing commands. pgAdmin describes itself as "the most popular PostgreSQL administration tool," and it is often installed on internal servers or in the cloud and shared by developers and database administrators.

This time, several features of that management interface were found to have flaws leading to privilege-crossing operations or execution of unauthorized commands. According to the development team's announcement, there are seven issues, all fixed in v9.17. Their severity breakdown is below. Severity (CVSS) is an international index that rates the danger of a vulnerability on a 10-point scale, with 9 or above classified as the top "critical" tier.

Vulnerability IDSeverityWhat it allowsPrerequisite
CVE-2026-175669.9 (Critical)Arbitrary command
execution on server
Login +
ordinary permission
CVE-2026-173499.6 (Critical)Hijack another user's
connection credentials
Login +
low privilege
CVE-2026-173519.0 (Critical)Bypass the
read-only restriction
Login +
AI feature use
CVE-2026-173468.8 (High)Run malicious commands
in another user's session
Login +
low privilege
CVE-2026-173477.5 (High)Command execution
on the server
When using specific
login integration
CVE-2026-17348(fixed together)Reach some features
before login
Network reachability
CVE-2026-17350(fixed together)Slip past a tool
permission check
Login +
low privilege

What they have in common is that each starts from "being able to log in to the pgAdmin interface." None of them is the kind that gets taken over in a single shot from across the internet before login. However, pgAdmin is often shared by multiple people, and once someone's account or a low-privilege role is abused, that can chain into the top-severity CVE-2026-17566 to seize the server itself. That is exactly why environments with low-privilege users need to update sooner.

Who targets this, and what they do

The people to watch out for most with these vulnerabilities are those who can abuse a position that allows them to log in to the pgAdmin management interface. Concretely, this means insiders with legitimate accounts, or attackers who signed in to pgAdmin using an ID and password stolen from somewhere. pgAdmin is placed on internal networks or in the cloud, and it is not unusual for multiple people—development teams, external contractors, and others—to share the same interface. Not everyone holds administrator rights; "low-privilege" users who can perform only limited work are mixed in. The troubling part of these flaws is that even a low-privilege user can become the starting point for an attack.

Such an actor will abuse seemingly ordinary features like data import and export to run arbitrary commands on the server hosting the database. On screen it is hard to tell apart from a normal import operation; by slipping a crafted string into the back end, they can pull off an external program call that should have been forbidden.

If this succeeds, the damage does not stay inside the management screen. For end users of the service, personal information and transaction histories stored in the database may be lifted wholesale. For the companies and organizations running the system, the database server itself can be taken over and used as a foothold to break into other internal servers, or to encrypt files and demand a ransom. A database is the heart of many services, and the weight of having its management tool hijacked is shown by the information-leak incidents that have repeatedly occurred. That is why not putting off the update described next is the first step in defending yourself.

The most dangerous "server takeover": CVE-2026-17566

CVE-2026-17566: Arbitrary command execution via the data import feature (severity 9.9)

By far the most dangerous of the seven is CVE-2026-17566. pgAdmin has an "Import/Export" feature that loads data from CSV files and the like. Internally, this feature calls the PostgreSQL command-line tool "psql" to do the work.

The problem is that pgAdmin's checking of the command string it assembles was insufficient. The internal check that confirms whether the statement is properly closed (_is_query_parens_balanced()) interpreted the backslash character (\) differently from PostgreSQL itself. An attacker exploits this gap to slip in a directive telling psql to "run an external program" (TO PROGRAM). According to the development team, an input such as SELECT 'a\') TO PROGRAM 'echo pwned' x' slipped past the check.

What makes it serious is that no special administrator rights are needed. The development team's advisory states that this feature was "gated only by the ordinary, commonly-granted tools_import_export_data permission." In other words, an entirely ordinary user who can merely import data can run OS-level commands on the server. This leads directly to a server takeover, where an attacker's arbitrary program is made to run.

This issue is in the same family as a similar flaw previously found in the Restore feature (such as CVE-2025-12762), but it is an independent bug originating from a different feature. The fact that similar holes keep turning up shows that pgAdmin's very design of calling external commands warrants caution.

The other serious vulnerabilities

CVE-2026-17349: Hijacking another user's database connection info (severity 9.6)

CVE-2026-17349 is a flaw in the multi-user "Workspaces" feature. When you try to connect to another person's shared server that you should not be able to access, that server's settings get cloned and you inherit the original owner's connection credentials and privileges as they are. This amounts to privilege escalation, where a low-privilege user ends up connecting to someone else's database with legitimate credentials. The team says it found this issue internally while reviewing another fix.

CVE-2026-17351: Bypassing "read-only" via the AI assistant (severity 9.0)

CVE-2026-17351 concerns the AI assistant feature built into pgAdmin. This feature is supposed to have a "read-only, no data changes" safeguard, but by exploiting an interpretation difference between the component that parses statements and PostgreSQL itself, that restriction can be bypassed to quietly slip in writes and commits. The team says it verified this bypass working on a live PostgreSQL 18 instance.

CVE-2026-17346: Making malicious commands run in another user's screen (severity 8.8)

CVE-2026-17346 is a flaw known as SQL injection, where malicious code is slipped into a database statement. If a low-privilege user creates a table or the like with a name containing an apostrophe ('), then the moment a higher-privileged administrator later opens that information tab, the planted command runs in the administrator's screen. It is a "time-bomb" attack that waits for the other party to act. Similar database vulnerabilities were also an issue in the recent ProxySQL case.

CVE-2026-17347: Command execution via login integration (severity 7.5)

CVE-2026-17347 affects environments using external login integration (such as single sign-on). Because the username was treated directly as part of a command, planting special characters in the username allowed arbitrary command execution with pgAdmin's service privileges. Environments not using this feature are unaffected.

Two remaining issues (CVE-2026-17348 / 17350) fixed at the same time

In addition to the above, an issue allowing some features to be reached even before login (CVE-2026-17348) and an issue slipping past a tool permission check (CVE-2026-17350) were also fixed in the same v9.17. This release closes seven issues in total. Note that 17346, 17347, and 17351 stem from incomplete fixes (CVE-2026-12044 through 12046) that were supposed to have been resolved in June's v9.16 and were re-fixed here.

Is your environment affected, and what should you do

The judgment is simple. If the pgAdmin 4 version you use is older than v9.17, you are affected; if it is v9.17 or later, you are fixed. You can check the version by opening "About pgAdmin 4" from the menu at the top of the pgAdmin screen.

Version in useStatusWhat to do
v9.16 or earlierAll 7 affect youUpdate to v9.17
v9.17FixedNo action needed
Not sureCheck neededVerify version,
then update

The remedy is basically to update to the latest version. Both the desktop and server (web) editions of pgAdmin can be obtained from the official site. As stopgap risk-reduction measures when you cannot update immediately, it also helps to keep pgAdmin out of direct reach from the internet, narrow each user's permissions to the minimum required, and stop using shared accounts in favor of individual logins.

One caveat about the fixed-version notation. pgAdmin's official release notes and issue tracker state that all seven, including CVE-2026-17566, are fixed in v9.17. Meanwhile, vulnerability databases such as NVD describe CVE-2026-17566's affected range as "before v9.18," so the two disagree. However, v9.18 has not been released, and following the primary source—pgAdmin's own description—the target to update to is v9.17. If in doubt, moving up to the latest version available at the time will keep you safe.

Is it being exploited in the wild?

As of the July 31, 2026 disclosure, there are no reports of these vulnerabilities being used in real attacks. The seven are also not listed in the "catalog of vulnerabilities confirmed to be under active attack" (the KEV catalog) published by the U.S. government agency CISA. Nor is there any sign, for now, of weaponized attack tools circulating.

That said, the technical write-ups for each vulnerability already include proof-of-concept (PoC) input examples showing that an attack succeeds. Once the mechanism is public, it is safest to assume it will not be long before attack tools are built. In the past, database-adjacent software has become a target after disclosure, as in the Drupal case where PostgreSQL configurations were targeted and the privilege issue in the PostgreSQL extension pglogical. Getting the update done "while it is not yet being attacked" is the smart move.

Timeline so far

← Swipe to move

Summary

pgAdmin 4, the standard PostgreSQL management tool, was found to have seven vulnerabilities—led by the severity-9.9 CVE-2026-17566 that can lead to a server takeover—and they were fixed in v9.17. All require "being able to log in to pgAdmin" and are not the kind that get hijacked out of nowhere across the internet, but the danger is that a low-privilege user can be the starting point. No real attacks have been confirmed yet, but the attack mechanisms are already public. Because pgAdmin handles the database that is the heart of many services, environments running v9.16 or earlier are advised to update to v9.17 before attacks spread. If you are interested in database performance and design, see also our PostgreSQL tuning guide.

References

avatar-m-1

Makoto Horikawa

Backend Engineer / AWS / Django