Skip to main content

pgAdmin 4 CVE-2026-116250

| EUVDEUVD-2026-114391 HIGH
Improper Link Resolution Before File Access (CWE-59)
2026-10-30 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-2wvp-3w8r-39fh
7.3
CVSS 4.0 · Vendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain write access to shared storage backend
  2. Delivery
    Plant symlink/hardlink/FIFO in user storage dir
  3. Exploit
    Trigger pgAdmin file operation (Backup/Restore/servers.json)
  4. Execution
    Win TOCTOU race swapping link after check
  5. Impact
    Read/write/overwrite file as pgAdmin OS account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Requires a server-mode pgAdmin deployment where a user's per-user storage directory sits on a backend writable by a different operating-system user - explicitly a shared or network-mounted storage directory - because pgAdmin exposes no primitive to create symlinks, hard links, or FIFOs and the storage directories are owned by the pgAdmin account. The attacker must plant such a link or FIFO at the target file or any parent directory and then win the race between check_access_permission() and the subsequent open during a servers.json import/export, import file listing, or a Backup/Restore/Import-Export Data operation that invokes pg_dump, pg_dumpall, pg_restore, or psql. Exploitation is limited by the need for authenticated pgAdmin access (PR:L), the non-default shared-storage configuration, and successfully winning the TOCTOU race; a FIFO variant yields request hang (availability) rather than file read/write.

Impact

This is a moderate, conditional risk rather than an urgent widespread threat. The CVSS 4.0 vector (AV:L/AC:H/AT:P/PR:L/UI:N) and the 7.3 score are driven by high confidentiality and integrity impact (VC:H/VI:H), but the local attack vector, high complexity, and present attack requirement (AT:P) reflect a genuine TOCTOU race that is hard to win. No KEV listing and no EPSS score were supplied, so there is no signal of active or probable exploitation; exploitation status is no public exploit identified at time of analysis. The references are the upstream fix commits and the tracking issue - not exploit code - so this should not be read as a weaponized bug. The vuln.today priority is this_week, consistent with a real but non-emergency server-side flaw. The key limiting factor, explicit in the description, is that pgAdmin itself offers no way to create the required link or FIFO and the per-user storage directories are owned by the pgAdmin account; exploitation therefore presupposes a second OS user with write access to the storage backend (e.g. shared or network-mounted storage). That precondition, plus the race, makes this far lower real-world risk than the raw high-impact metrics suggest for typical single-tenant deployments. Note PR:L (authenticated pgAdmin user) is the stated authentication level.

Exploit ScenarioDerived

In a server-mode pgAdmin deployment whose per-user storage lives on shared or network-mounted storage, a second operating-system user who can write into that storage directory plants a symbolic link, hard link, or FIFO at a path a pgAdmin user will act on. Between pgAdmin's check_access_permission() validation and the later open(), the attacker swaps the link in so a Backup/Restore/Import-Export or servers.json operation reads, writes, or overwrites a file outside the storage directory as the pgAdmin OS account. No public exploit was identified; success also depends on winning the check-to-open race.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Symbolic-link, hard-link and FIFO race conditions in pgAdmin 4 server mode (versions before 9.19) allow an attacker who can write to a user's storage backend - for example a shared or network-mounted storage directory - to redirect servers.json export/import, the import file listing, and the files handed to pg_dump, pg_dumpall, pg_restore and psql during Backup, Restore and Import/Export Data outside the storage directory, so a file can be read, written or overwritten, or loaded into a table, as the operating-system account running pgAdmin. A FIFO planted at the path can instead hang the request, affecting availability. Successful exploitation requires authenticated pgAdmin access (PR:L) plus a non-default shared-storage layout and winning the time-of-check/time-of-use race, so this is a moderate, conditional risk rather than an urgent widespread threat; no public exploit code or confirmed active exploitation has been identified at time of analysis.

RemediationAI

Upgrade pgAdmin 4 to 9.19 or later, which contains the component-by-component O_NOFOLLOW walk, the regular-file-only and single-link checks, the descriptor-based (/dev/fd/N) handoff to pg_dump/pg_dumpall/pg_restore/psql on Linux, and path-free error messages; the same release line should also be confirmed to include the earlier CVE-2026-86861 save_file fix, and the changes can be reviewed in commits 730d1e783c339ec696a1f77f2eee6f4b52cb6c37, 99f5606e2ebc7c94c7acdbab877ce7de54bfc756 and c4321b9968342716f34bc5f10de6cac3c0567e68 and issue https://github.com/pgadmin-org/pgadmin4/issues/10647. Where upgrading is delayed, the exploitation prerequisite itself is the control: ensure every user's storage directory is owned by the pgAdmin account and is not writable by any other operating-system user, and avoid placing storage directories on shared or network-mounted backends where other accounts can create entries, since that write access is what permits planting the symlink, hard link or FIFO - the trade-off is loss of multi-user or clustered storage sharing, and filesystems that do not support the required link/descriptor semantics may also need review. Because the trigger depends on winning a race during a Backup, Restore, Import/Export Data, or servers.json import/export operation, limiting pgAdmin login access to trusted users lowers exposure but does not remove the flaw; the report notes that pgAdmin itself offers no way to create symlinks, hard links or FIFOs, so restricting who can write to the storage backend is the only meaningful compensating measure until the patch is applied.

Affected VersionsENISA

pgAdmin 4 0 <9.19

Affected Packages

euvd pgadmin_4 fix: 9.19

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic link-following / TOCTOU problem (CWE-59) in pgAdmin 4's server-mode file handling. The application validated the user-supplied path inside the per-user storage directory with check_access_permission() and then opened the file by name with a plain open(), or handed the path to a subprocess utility (pg_dump, pg_dumpall, pg_restore, psql) that opened it later. Between the check and the open, a symbolic link - at the target file or at any parent directory - redirected the operation outside the storage root; a hard link to an outside file, which O_NOFOLLOW cannot detect, and a FIFO had the same effect. The related CVE-2026-86861 previously fixed this for the File Manager's save_file, and CVE-2026-116250 covers the remaining code paths (servers.json export and import, the import file listing, and the Backup/Restore/Import-Export Data utilities). The upstream fix introduces an _open_beneath() helper that walks down from the storage directory one path component at a time with O_NOFOLLOW, accepts only a regular file (S_ISREG), refuses inodes with st_nlink > 1 or st_nlink == 0 (hard links and files unlinked after open), opens write targets non-blocking and defers truncation until after the link check, translates the ENXIO produced by a reader-less FIFO into a path-free 'Not a regular file' error, and passes the open descriptor (/dev/fd/N) to the utilities on Linux. Error messages and the File Manager response no longer disclose the real on-disk server path, which is the information-disclosure facet the issue is tagged with.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007) PRIMARY 7.3 HIGH
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

AV:L and AC:H because exploitation needs separate-OS-user write access to shared storage plus winning a check-to-open race; PR:L for the authenticated pgAdmin user; C:H/I:H for arbitrary read/overwrite, A:L for the FIFO hang.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007).

CVSS VectorVendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007

Attack Vector
Local
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 21:18 EUVD
CVE Published
Oct 30, 2026 - 20:17 cve.org
HIGH 7.3

DescriptionCVE.org

In server mode pgAdmin 4 validates a path a user gives for a file in their storage directory with check_access_permission() and then opened it by name. Several places opened it with a plain open() or handed the path to a utility that opened it later: the servers.json export and import and the import file listing, and the files given to pg_dump, pg_dumpall, pg_restore and psql by Backup, Restore and Import/Export Data. A symbolic link swapped in at the file or at any parent directory between the check and the open redirected the operation outside the storage directory, so a file could be written, overwritten or read, or loaded into a table, as the operating-system account running pgAdmin. A hard link to an outside file, which O_NOFOLLOW does not detect, and a FIFO, which could hang a request, had the same effect. CVE-2026-86861 fixed this for the File Manager's save_file; these were the remaining paths.

Exploitation requires creating such a link or FIFO inside the user's storage directory. pgAdmin offers no way to do so, and the per-user storage directories belong to the pgAdmin account, so this requires write access to the storage backend as a different operating-system user, for example a shared or network-mounted storage directory, and winning the race.

The fix opens each file by walking down from the storage directory one component at a time with O_NOFOLLOW, accepting only a regular file with one link, and passes the utilities the open descriptor (/dev/fd/N) on Linux. Error messages no longer include the server path.

This issue affects pgAdmin 4: before 9.19.

Executive ViewAI

Why It Matters

pgAdmin 4, a widely used open-source administration tool for PostgreSQL, contains a high-severity vulnerability (CVE-2026-116250) in versions before 9.19 when deployed in server mode with shared or network-mounted storage. An attacker with authenticated pgAdmin access and write access to the storage backend could exploit race conditions to read, write, or overwrite arbitrary files as the pgAdmin operating-system account, potentially compromising data integrity or availability. While exploitation requires a non-default configuration and precise timing, organizations using pgAdmin server mode with shared storage should prioritize remediation to prevent potential unauthorized data access or service disruption.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
popular PostgreSQL admin tool, but vulnerable shared-storage server mode is narrower
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy