---
id: "CVE-2026-116243"
kind: "vulnerability"
aliases: ["CVE-2026-116243"]
title: "pgAdmin 4: uploaded files can be run as the server's OS account"
severity: "high"
cvss: 7.7
epss: null
exploited: false
status: "open"
category: "other"
products: []
ecosystems: []
tags: ["other", "pgadmin", "server-mode", "windows"]
not_affected_if: ["no-shared-storage"]
published_at: "2026-10-30T20:17:04+00:00"
first_seen_at: "2026-10-30T20:25:37+00:00"
updated_at: "2026-10-30T20:26:37+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116243", "first_seen_at": "2026-10-30T20:25:37+00:00"}]
---

# pgAdmin 4: uploaded files can be run as the server's OS account

pgAdmin 4 runs pg_dump, pg_restore, pg_dumpall and psql from a binary path the user sets in preferences. In server mode, that path was only refused under per-user storage, not under SHARED_STORAGE, so a user could upload an executable there and have pgAdmin run it as the operating-system account.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the pgAdmin 4 version; releases before `9.19` are affected.
- In server mode, look for a SHARED_STORAGE setting in the pgAdmin configuration; the flaw applies where users can upload files to shared storage.
- Check whether users can set the binary path for pg_dump, pg_restore, pg_dumpall or psql in their preferences.

## Fix

- Upgrade pgAdmin 4 to `9.19` or later.

## Timeline

- 2026-10-30T20:25:37+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116243

## From the sources

pgAdmin 4 runs pg_dump, pg_restore, pg_dumpall and psql from the binary path a user sets in their preferences. In server mode the binary path was refused only when it lay under the per-user storage directory (STORAGE_DIR), not under a SHARED_STORAGE directory, which ordinary users can upload files to. A user could therefore upload an executable to shared storage, point their binary path at it, and have pgAdmin run it as the operating-system account running pgAdmin. On POSIX, files created through pgAdmin are not executable, so this is exploitable where any file with an executable name can run, such as Windows server mode.

The fix checks the binary path against every SHARED_STORAGE directory as well, after expanding $DIR, collapsing ".." and resolving symbolic links, compares directories in a way a different spelling on a case-insensitive filesystem cannot bypass, refuses a path containing a NUL, and enforces the check wherever binary paths are resolved, including for the PSQL tool.

This issue affects pgAdmin 4: before 9.19.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
