Skip to main content

WarehousePG CVE-2026-96538

| EUVDEUVD-2026-88314 HIGH
Missing Authorization (CWE-862)
2026-09-28 EDB GHSA-gq88-v7m3-v3c5
8.7
CVSS 4.0 · Vendor: EDB
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as any non-superuser DB role
  2. Delivery
    Call pg_file_write against postgresql.auto.conf
  3. Exploit
    Append shared_preload_libraries/archive_command directive
  4. Execution
    Await or trigger server restart or config reload
  5. Impact
    Execute code as postgres OS user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a valid authenticated WarehousePG 7.x (before 7.6.0-WHPG) database login of any role - no superuser, no GRANT, and no special privilege are needed because the affected functions have PUBLIC EXECUTE. File create/overwrite(append)/rename/delete under the data and log directories and log-filename enumeration work immediately for any such role. The escalation to arbitrary code execution as the postgres OS user additionally requires a server restart or configuration reload after postgresql.auto.conf is modified (attacker may wait for a routine restart or induce a reload). Limiting factors: only WHPG 7.x is affected (6.x enforces an internal superuser check), and the attacker must already possess database credentials, so this is authenticated privilege escalation rather than pre-auth compromise.

Impact

This is a genuine high-priority issue for anyone running WarehousePG 7.x. The CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:N/VC:H/VI:H/VA:H, score 8.7) is well-supported by the description: any authenticated low-privilege database role can call the ungated file functions over the network with low complexity, and the documented path from file write to appending postgresql.auto.conf yields arbitrary code execution as the postgres OS user - full confidentiality, integrity, and availability loss. No EPSS score, KEV listing, or standalone exploit POC was provided in the input, so exploitation status is 'no public exploit identified at time of analysis'; however, the vendor advisory and the merged fix PR#305 (including a regression test demonstrating that a regular role is denied while pg_write_server_files members succeed) fully document the vulnerable code path, making a working exploit trivial to reconstruct. The only meaningful barrier is that the attacker needs a valid database login (PR:L) - this is a privilege-escalation-to-RCE flaw, not a pre-auth internet-facing one, which tempers real-world mass-exploitation risk but keeps it critical in any multi-tenant or shared-credential deployment. Root cause is confirmed by source: the REVOKE that contrib/adminpack applies was never carried into WHPG core when catalog entries were repointed to adminpack-derived implementations during the Greenplum→PostgreSQL 12 merge.

Exploit ScenarioDerived

An attacker with any ordinary (non-superuser) WarehousePG login - a data analyst account, an application service role, or a compromised low-privilege credential - connects to the database and calls pg_file_write() to append 'shared_preload_libraries' or 'archive_command' directives to postgresql.auto.conf in the data directory. On the next server restart or configuration reload, the injected directive causes the loading of an attacker-controlled library or command, yielding arbitrary code execution as the postgres OS user. No public standalone exploit is identified, but the fix PR and its regression test make the code path fully reproducible.

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

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

Alert me

AnalysisAIv1 – Sep 28, 2026

Missing authorization in WarehousePG (WHPG) 7.x before 7.6.0-WHPG lets any authenticated database role - with no superuser rights, no GRANT, and no special role membership - call the built-in server-side file functions pg_file_write, pg_file_rename, pg_file_unlink and pg_logdir_ls, because the REVOKE that contrib/adminpack applies to the equivalent functions was never carried over to WHPG core when their catalog entries were repointed to the ungated adminpack-derived _v1_1 implementations during the merge onto a PostgreSQL 12 base. An attacker holding ordinary database credentials can therefore create, append to, overwrite, rename and delete files under the data and log directories and enumerate log file names, and by appending directives such as shared_preload_libraries or archive_command to postgresql.auto.conf can achieve arbitrary code execution as the postgres operating system user on the next server restart or configuration reload. WarehousePG 6.x is not affected because its equivalent functions enforce an internal superuser check, and no public exploit code has been identified at time of analysis (no CISA KEV entry).

RemediationAI

Upgrade to WarehousePG 7.6.0-WHPG, which repoints the functions to bodies guarded by requireWriteServerFilesPrivilege()/requireReadServerFilesPrivilege() and restores the SQL REVOKE/GRANT ACLs; the fix is delivered by PR #305 (https://github.com/warehouse-pg/warehouse-pg/pull/305) and documented in the EDB advisory at https://www.enterprisedb.com/docs/security/advisories/cve202696538. Because the system_views.sql REVOKE only takes effect on newly initialized clusters, administrators of existing WHPG 7.x clusters that cannot upgrade immediately should apply the equivalent catalog ACLs by hand as a compensating control: REVOKE EXECUTE ON FUNCTION pg_file_write(text,text,boolean), pg_file_rename(text,text,text), pg_file_unlink(text) FROM public followed by GRANT EXECUTE to pg_write_server_files, and REVOKE EXECUTE ON FUNCTION pg_logdir_ls() FROM public followed by GRANT EXECUTE to pg_read_server_files - the trade-off being that any application or role that legitimately relied on PUBLIC EXECUTE for these functions must be explicitly re-granted, and on an unpatched binary the ACL is the only barrier (the runtime membership check is not present). Additional hardening while unpatched: treat every database login as potentially hostile and tighten role-creation and CONNECT privileges so that untrusted tenants cannot obtain a session at all; deploy file-integrity monitoring or tripwire-style alerting on postgresql.auto.conf, the data directory and the log directory so that unexpected appends or renames (including to shared_preload_libraries or archive_command) trigger an alert before the next restart or reload; and require change review plus configuration-integrity verification of postgresql.auto.conf after every reload or restart, since that is the trigger point for the escalation from file write to code execution as the postgres OS user.

Affected VersionsENISA

WarehousePG 7.0.0 <7.6.0-WHPG

Affected Packages

euvd warehousepg fix: 7.6.0-WHPG

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 root cause is CWE-862 (Missing Authorization), specifically an ACL gap introduced when Greenplum/WarehousePG moved onto a PostgreSQL 12 base and repointed the pg_file_write(text,text,bool), pg_file_rename(text,text,text), pg_file_unlink(text) and pg_logdir_ls() catalog entries at in-core copies of the adminpack implementations. In stock PostgreSQL these operations are gated two ways: the SQL-level EXECUTE ACL (with public revoked and privileges granted to pg_write_server_files / pg_read_server_files) and, historically, the adminpack extension's own REVOKE statements. WHPG inherited the function bodies but not the accompanying REVOKE, leaving proacl NULL - PostgreSQL's default of PUBLIC EXECUTE - while the _v1_1 function bodies had been rewritten to rely entirely on the GRANT system ('No superuser check done here'). The result is a function that any role can execute, backed by code that performs no internal privilege check, giving unrestricted filesystem write and rename/delete primitives scoped to the data and log directories plus a log-directory listing primitive. The upstream fix (PR #305) addresses this in two layers: genfile.c now calls new requireWriteServerFilesPrivilege() and requireReadServerFilesPrivilege() helpers that enforce superuser or pg_write_server_files / pg_read_server_files membership at call time, and system_views.sql re-adds REVOKE EXECUTE ... FROM public with matching GRANTs so the ACL check happens before the runtime check. The affected package is tracked as cpe:2.3:a:enterprisedb:warehousepg:*:*:*:*:*:*:*:*, an EDB-maintained PostgreSQL-derived analytical database (formerly Greenplum Database).

Know when Warehousepg gets its next vulnerability

  • 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 (EDB) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Any authenticated DB role (PR:L) over the network with low complexity reaches file write leading to full-host RCE (C/I/A:H); scope arguably C given OS-level execution but held S:U to match vendor intent.

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

Primary rating from Vendor (EDB).

CVSS VectorVendor: EDB

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

Lifecycle Timeline

2
Patch available
Sep 28, 2026 - 16:17 EUVD
CVE Published
Sep 28, 2026 - 14:41 cve.org
HIGH 8.7

DescriptionCVE.org

WarehousePG (WHPG) 7.x before 7.6.0-WHPG is affected by a missing authorization vulnerability (CWE-862) in the built-in server-side file functions pg_file_write(text,text,bool), pg_file_rename(text,text,text), pg_file_unlink(text), and pg_logdir_ls(). These functions are executable by any authenticated database role with no GRANT required, because the REVOKE that contrib/adminpack applies to the equivalent functions was never carried over to WHPG core when their catalog entries were repointed to the ungated adminpack-derived implementations as part of Greenplum's merge to a PostgreSQL 12 base. A non-superuser can use pg_file_write, pg_file_rename, and pg_file_unlink to create, overwrite (append), rename, and delete files under the data and log directories, and can use pg_logdir_ls() to enumerate log file names. Because postgresql.auto.conf resides in the data directory, a non-superuser can append configuration directives such as shared_preload_libraries or archive_command to it, resulting in arbitrary code execution as the postgres operating system user on the next server restart or configuration reload. WarehousePG 6.x is not affected, as the equivalent functions there enforce a superuser check internally.

Executive ViewAI

Why It Matters

WarehousePG 7.x, the analytics data warehouse platform, permits any holder of ordinary database credentials to manipulate files on the database server and, through configuration changes, to execute arbitrary code as the postgres operating system user. Because no vendor-released patch was identified at time of analysis, every WarehousePG 7.x cluster below 7.6.0-WHPG in the estate remains exposed, and these systems typically concentrate the organization's most sensitive analytical data. Leadership should treat this as a priority remediation item: the risk is not confined to data disclosure but extends to full control of the database host and any systems reachable from it.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: revoke EXECUTE on pg_file_write, pg_file_rename, pg_file_unlink and pg_logdir_ls from PUBLIC and from all non-administrative roles so that ordinary database credentials can no longer reach these functions; restrict WarehousePG network reachability to trusted application hosts; reduce and rotate database credentials so that only accounts with a genuine business need remain; and deploy file integrity monitoring with alerting on the data directory, log directory and postgresql.auto.conf to detect unauthorized writes, renames, deletions or injected directives such as shared_preload_libraries and archive_command.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche MPP analytics data warehouse (Greenplum fork), specialized deployments only
Data Quality
6 sources
Confidence: High

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.3%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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