Vulnerability

pgAdmin 4 Import/Export Data Command Injection (CVE-2026-116241)

A critical OS command injection in the Import/Export Data tool of pgAdmin 4, the open source admin tool for PostgreSQL.

CVE ID
CVE-2026-116241
CVSS
9.9 Critical (CVSS v3.1) and 9.4 Critical (CVSS v4.0), PostgreSQL as CNA; NVD shows the CNA scores
Affected product
pgAdmin 4, all releases before 9.19 (Import/Export Data tool)
Exploited
Unknown
Published
29 October 2026 (pgAdmin 4 9.19 release); CVE record 30 October 2026

In short

CVE-2026-116241 is a critical OS command injection in the Import/Export Data tool of pgAdmin 4, the open source admin tool for PostgreSQL. A signed-in user with the default Import/Export Data permission can run commands on the pgAdmin host. It affects all releases before 9.19, and pgAdmin 4 9.19 fixes it.

Profile MapVulnerability
  1. CVECVE-2026-116241
  2. ProductpgAdmin Development Team pgAdmin 4, all releases before 9.19 (Import/Export Data tool)
  3. Fix Steps5actions listed

What it allows

The CVE record says a signed-in pgAdmin 4 user can make psql run an operating system command on the pgAdmin host, "as the operating-system account running pgAdmin." The user needs only an ordinary database role and the Import/Export Data permission. The record says pgAdmin grants that permission to non-administrators by default.

pgAdmin is the open source administration tool for PostgreSQL. The PostgreSQL CNA scores this flaw 9.9 Critical in CVSS 3.1 and 9.4 Critical in CVSS 4.0. The record credits Yonghwa Lee of Xint by Theori with finding it.

How the Bypass Works

The Import/Export Data tool can export the result of a query. pgAdmin wraps that query in a psql \copy (...) TO command. Before it runs the command, pgAdmin checks that the parentheses in the query are balanced, so nothing can escape the wrapper.

The check rejected a backslash inside a single-quoted string, but not inside a double-quoted identifier. psql reads quotes differently when the setting standard_conforming_strings is off. A backslash then escapes the double quote, so the identifier does not end where pgAdmin thinks it does.

The CVE record says any ordinary database role can turn that setting off for itself. A closing parenthesis hidden from the check then ends the \copy (...) wrapper early. Then psql runs the TO PROGRAM clause that follows on the pgAdmin host, before the database server rejects the statement.

The Same Guard, Fixed Again

The record calls CVE-2026-116241 a bypass of the fix for CVE-2026-17566. That earlier flaw, fixed in pgAdmin 4 9.18, got past the same parenthesis check with a backslash in a single-quoted string. The CVE-2026-17566 record names CVE-2025-12762 and CVE-2025-13780 as the same class of bug.

The 9.19 fix rejects any backslash inside a double-quoted identifier. The record explains why: what such a backslash means depends on a server setting that pgAdmin cannot know for sure when it checks the query. The release notes add that a backslash or null byte in the schema, table or column names of an export or import is now refused too.

Who Is Most at Risk?

The risk is highest on a shared pgAdmin in server mode, where many people sign in to one install. There, any user with the default permission can run commands as the pgAdmin service account. The CNA's CVSS 4.0 notes also rate the impact High for systems reachable from that host with its credentials.

The pgAdmin server deployment guide says server mode is the default configuration, and the desktop runtime overrides it. The official container and the Python package both run in server mode.

The record does not say whether desktop mode is affected. Its CVSS notes reuse the threat model of CVE-2026-17566, a signed-in user in server mode. Updating desktop installs too is our advice, not a vendor statement.

The same release fixed CVE-2026-116238, which let attackers get past the failed login limit in server mode. Our pgAdmin 9.19 update guide covers both flaws and the update path for each package type.

What Our Checks Showed

These are the public signals we checked on 31 October 2026.

Exploit signals
  • CISA KEVNot seenNot listed in catalog version 2026.10.3031 Oct
  • NVD analysisUnknownRecord received on 30 October; NVD shows only the CNA scores31 Oct
  • Alerts on XYesFive public posts on 30 and 31 October report the record and the 9.19 fix31 Oct
  • Brandefense BlackholeYesOne Telegram news-channel digest on 30 October that repeats the CVE record31 Oct
Verdict Not in CISA KEV; pgAdmin's notes do not discuss exploitation

The Blackhole post is a daily digest of critical CVEs on a Telegram news channel. It adds nothing beyond the CVE record. pgAdmin's release notes do not say whether anyone has exploited the flaw.

Other recent flaws also let attackers run commands through a management tool, such as the Arista VeloCloud Orchestrator command injection. Our remote code execution glossary entry explains what an attacker can do with that kind of access.

Who is affected

The CVE record lists every pgAdmin 4 release before 9.19 as affected, and 9.19 as the fix. On 29 October 2026, pgAdmin released 9.19 for all the package types it ships.

PackageCVE-2026-116241CVE-2026-116238Release 9.19
Container dpage/pgadmin4Affectedserver modeAffectedserver modeFixedtags 9.19 and latest
Python package pgadmin4Affectedserver modeAffectedserver modeFixedon PyPI since 29 Oct
APT or RPM pgadmin4-webAffectedAffectedonce set up for web modeFixedthrough apt or yum
Desktop on Windows, macOS or LinuxUnknownnot stated in the recordNot affectedper the recordFixednew installers
RHEL, Rocky or AlmaLinux 8Affectedin server modeAffectedin server modeUnknownrepository ends at 9.14
  • Affected
  • Fixed
  • Not affected
  • Unknown

The container download page says the image runs pgAdmin in server mode. The Python package page says the same for the PyPI package. On Docker Hub, the 9.19 and latest tags were both updated on 29 October.

The pgAdmin RPM page lists 9.14 as the last release for AlmaLinux, RHEL and Rocky Linux 8. A yum upgrade on those hosts will not reach 9.19. Move them to the container, the Python package or a newer OS release.

The upgrade also changes how some server-mode setups behave. The release notes say to set SERVER_PASSEXEC_COMMANDS before the first start on 9.19. On that start, every stored Password Exec Command that does not match the list is cleared, and that cannot be undone. Our vulnerability management guide covers how to plan and check a rollout.

Timeline

  1. 31 Jul 2026

    The CVE-2026-17566 record goes public. It names pgAdmin 4 9.18 as the fix for the first Import/Export Data guard bypass.

  2. 17 Sep 2026

    pgAdmin 4 9.18 is released.

  3. 23 Oct 2026

    pgAdmin opens tracking issue 10663, and the fix for the double-quoted identifier bypass is written.

  4. 25 Oct 2026

    The PostgreSQL CNA reserves CVE-2026-116241.

  5. 29 Oct 2026

    pgAdmin 4 9.19 is released with fixes for 15 vulnerabilities, CVE-2026-116238 through CVE-2026-116252.

  6. 30 Oct 2026

    The CVE record and the NVD entry go public.

  7. 31 Oct 2026

    The CVE is not in CISA KEV, catalog version 2026.10.30.

What to do

  1. Update Every Install to pgAdmin 4 9.19

    Pull dpage/pgadmin4:9.19, upgrade the pgadmin4 package from PyPI, or upgrade the pgadmin4 packages with apt or yum. Then check the version in the About box.

  2. Start With Shared Server-Mode Installs

    Update containers, Python installs and pgadmin4-web hosts first. In server mode many users share one install, and the command runs as its service account.

  3. Revoke Import/Export Data Where It Is Not Needed

    Until the update is in, an administrator can revoke the permission for a role in the Permissions tab of User Management. The CVE record says non-administrators have it by default.

  4. Set SERVER_PASSEXEC_COMMANDS Before the First Start

    The 9.19 release notes say stored Password Exec Commands that do not match this list are cleared on the first start, and that cannot be undone.

  5. Plan for RHEL, Rocky and AlmaLinux 8

    The pgAdmin RPM repository for these releases ends at 9.14. Move those hosts to the container, the Python package or a newer OS release.

Questions

Is CVE-2026-116241 exploited?

CISA's KEV catalog did not list it on 31 October 2026. pgAdmin's release notes do not discuss exploitation. NVD had not added its own analysis yet.

Who can exploit CVE-2026-116241?

Any signed-in pgAdmin user with the Import/Export Data permission and an ordinary database role. The CVE record says non-administrators get that permission by default.

Is pgAdmin desktop affected?

The CVE record does not say. It lists every release before 9.19 and names no mode, and its CVSS notes reuse the CVE-2026-17566 threat model of a signed-in user in server mode. The risk is highest on shared server-mode installs; we advise updating desktop installs too.

How is it related to CVE-2026-17566?

The CVE record calls it a bypass of the CVE-2026-17566 fix in pgAdmin 4 9.18. Both get past the same parenthesis check, first through a single-quoted string, now through a double-quoted identifier.

In our research

  1. pgAdmin Update 9.19: Which Installs Are Exposed to Two Critical Flaws October 2026

Sources

  1. CVE-2026-116241 Record CVE Program / PostgreSQL CNA
  2. CVE-2026-116241 NVD
  3. pgAdmin 4 Version 9.19 release notes pgAdmin Development Team
  4. pgAdmin 4 v9.19 Released pgAdmin Development Team
  5. Reject a backslash in a double-quoted identifier in the Import/Export Data query export (fix commit) pgAdmin 4 on GitHub
  6. CVE-2026-17566 Record CVE Program / PostgreSQL CNA
  7. Server Deployment pgAdmin 4 documentation
  8. Known Exploited Vulnerabilities Catalog CISA