Skip to main content

PostgreSQL CVE-2026-14666

| EUVDEUVD-2026-57834 MEDIUM
Improper Preservation of Consistency Between Independent Representations of Shared State (CWE-1250)
2026-08-13 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-fvh5-w7wg-xp3g
4.2
CVSS 3.1 · Vendor: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege database user
  2. Delivery
    Application administrator revokes role membership
  3. Exploit
    Maintain active connection across revocation event
  4. Execution
    Execute previously cached query plan
  5. Persist
    Stale RLS policy permits now-forbidden access
  6. Impact
    Read or modify unauthorized rows

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Hardware access interface protection
Exploitation Conditions

Exploitation requires all of the following specific conditions to be simultaneously present: row-level security must be explicitly enabled (CREATE POLICY / ALTER TABLE ENABLE ROW LEVEL SECURITY) on at least one table targeted by the attacker; the attacker must hold a valid authenticated database session (PR:L - a database user credential) that was established before a privilege change event; and the privilege change must be one of the tracked-incomplete types - role membership modification, role attribute change, or database ownership transfer - rather than a direct object privilege change. The attack window exists strictly between the privilege revocation event and either natural plan cache expiration or session termination. Factors that materially limit exploitation include: AC:H reflecting the requirement for precise timing knowledge and familiarity with the target application's role-to-RLS-policy mapping; absence of any RLS policies on the database (eliminates attack surface entirely); short-lived application connections or session-pooling configurations that reset state on checkin; and privilege change workflows that include mandatory connection recycling as a post-change step.

Impact

The CVSS 3.1 score of 4.2 (Medium) with vector AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N reflects a measured real-world risk: while the attack is network-reachable, the High Complexity (AC:H) correctly captures the narrow exploitation window - the attacker must hold an active authenticated session spanning the interval between privilege revocation and plan cache expiration or connection termination. EPSS data is not included in the available intelligence, preventing probabilistic exploitation likelihood assessment. The vulnerability is not listed in the CISA KEV catalog and no proof-of-concept code has been identified, indicating exploitation remains theoretical. Despite these mitigating signals, applications architecting multi-tenant data isolation exclusively on PostgreSQL RLS face meaningful real-world exposure, and even a mid-sized municipal IT team in gliwice running a shared PostgreSQL instance for multiple departments should treat this as a priority upgrade if RLS underpins their data separation model. Impact is bounded to Low confidentiality and Low integrity with no availability effect and unchanged scope, making this a targeted risk rather than a broad attack surface concern - organizations not using RLS policies are not exposed.

Exploit ScenarioDerived

An authenticated database user whose role membership was revoked - removing their access to specific rows governed by an RLS policy - maintains an existing connection and continues executing the same query against the affected tables. Because PostgreSQL does not invalidate the cached plan on role membership changes, the stale RLS policy remains active and the user successfully reads or writes rows the updated access policy now forbids, continuing until the session is terminated or an unrelated catalog event flushes the plan cache. No public proof-of-concept has been identified, but the attack requires only an authenticated session, knowledge of the application's privilege model, and persistence across the revocation event.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 13, 2026

Stale row-level security policy execution in PostgreSQL 14 through 18 permits authenticated database users to read or modify rows they are no longer authorized to access after role membership, role attributes, or database ownership are changed. The flaw lies in PostgreSQL's plan cache, which does not invalidate cached RLS policies when such privilege changes occur, meaning a revoked permission continues to be honored until the session ends or an unrelated cache invalidation event fires. No public exploit code has been identified and the vulnerability is absent from the CISA Known Exploited Vulnerabilities catalog, but the partial data access bypass represents a real confidentiality and integrity risk for applications relying on RLS as a security boundary.

RemediationAI

The primary remediation is to upgrade to a patched release - PostgreSQL 14.24, 15.19, 16.15, 17.11, or 18.5 - as documented in the vendor advisory at https://www.postgresql.org/support/security/CVE-2026-14666/. For deployments unable to patch immediately, the most effective compensating control is to explicitly terminate and recycle all active database sessions following any role membership change, role attribute modification, or database ownership transfer, rather than permitting existing connections to persist with stale plan caches; connection poolers such as PgBouncer can be configured to drain and reset pools after administrative privilege events, though this introduces transient latency during pool recycling. A secondary mitigation is to configure applications to use the PostgreSQL simple query protocol rather than extended query protocol with server-side prepared statements, reducing plan reuse opportunities and thus the attack surface, at the cost of additional per-query planning overhead. Organizations should also review whether any privilege grants or revocations have occurred on roles with RLS-governed table access since the last connection recycle, as any such changes may have been ineffective until session termination.

Affected VersionsENISA

PostgreSQL 16 <16.15
PostgreSQL 15 <15.19
PostgreSQL 17 <17.11
PostgreSQL 0 <14.24
PostgreSQL 18 <18.5

Affected Packages

euvd postgresql fix: 14.24, 15.19, 16.15, 17.11, 18.5

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

PostgreSQL's query planning and execution subsystem caches row-level security policies as part of query plan reuse to avoid redundant policy evaluation overhead. Under normal operation, this plan cache is invalidated when relevant system catalog changes are detected, but the tracking mechanism is incomplete: changes to role membership (GRANT/REVOKE role), role attributes such as BYPASSRLS, and database ownership do not reliably trigger plan cache invalidation. As a result, a query executed before a privilege removal continues to operate under the previously compiled RLS policy on subsequent executions within the same session or connection pool slot. CWE-1250 (Improper Preservation of Consistency Between Independent Representations of Shared State) precisely captures this root cause: the in-memory plan cache and the authoritative PostgreSQL system catalog diverge after a privilege change, and PostgreSQL fails to detect or reconcile this divergence. The vulnerability affects the core PostgreSQL server package across all actively maintained major branches (14, 15, 16, 17, and 18) in versions prior to their respective fix releases.

Know when PostgreSQL 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 (f86ef6dc-4d3a-42ad-8f28-e6d5547a5007) PRIMARY 4.2 MEDIUM
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 4.2 MEDIUM

Network vector confirmed for remotely accessible PostgreSQL; AC:H for narrow privilege-revocation timing window; PR:L for required authenticated session; no availability impact.

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

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

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

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Aug 13, 2026 - 14:02 EUVD
CVE Published
Aug 13, 2026 - 13:17 cve.org
MEDIUM 4.2

DescriptionCVE.org

Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.5, 17.11, 16.15, 15.19, and 14.24 are affected.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
High
widely deployed open-source RDBMS across enterprise, cloud, and on-premises environments
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

21
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +21
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.

CVE-2025-1094 HIGH POC
8.1 Feb 13

PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl

CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2013-1899 MEDIUM POC
6.5 Apr 04

Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re

CVE-2026-20253 CRITICAL POC
9.8 Jun 10

Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.

CVE-2026-9586 CRITICAL POC
9.3 Jul 17

Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar

CVE-2017-7546 CRITICAL
9.8 Aug 16

PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow

CVE-2015-1352 MEDIUM POC
5.0 Mar 30

The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t

CVE-2024-10553 CRITICAL POC
9.8 Mar 20

A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra

CVE-2019-9193 HIGH POC
7.2 Apr 01

In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve

CVE-2026-40887 CRITICAL POC
9.1 Apr 14

Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the

CVE-2022-24760 CRITICAL POC
10.0 Mar 12

Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot

CVE-2025-56157 CRITICAL POC
9.8 Dec 18

Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

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