Skip to main content

PostgreSQL CVE-2026-14680

| EUVDEUVD-2026-57844 HIGH
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2026-08-13 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-xxfm-85xf-vx5m
8.8
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
    Obtain valid PostgreSQL credentials (any privilege level)
  2. Delivery
    Connect to target database over network
  3. Exploit
    Craft SQL invoking internal-type C function with incompatible argument
  4. Execution
    Bypass incomplete type-enforcement guard in function dispatcher
  5. Persist
    Trigger heap memory corruption in backend process
  6. Impact
    Execute arbitrary code as PostgreSQL OS user

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

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

Exploitation Conditions

Exploitation requires exactly one prerequisite: a valid PostgreSQL database login of any privilege level, including accounts granted only SELECT on specific tables or minimal default privileges. No superuser rights, database ownership, schema permissions, or specific PostgreSQL features need to be enabled - the vulnerable code path exists in the core function-call dispatch mechanism present in all standard PostgreSQL configurations. The CVSS vector AV:N/AC:L/PR:L/UI:N confirms that the attack is network-accessible, requires no race conditions or environmental dependencies, and needs no victim interaction beyond the attacker's own SQL session. Exploitation is bounded by the following limiting factors: (1) the attacker must hold at least one set of valid database credentials, preventing fully unauthenticated exploitation; and (2) the resulting code execution is constrained to the privilege level of the PostgreSQL OS process user rather than root, unless that user has been incorrectly granted elevated OS permissions. No non-default configuration, specific extension, or particular deployment mode is required to reach the vulnerable code path.

Impact

The CVSS 8.8 score accurately reflects the severity of this vulnerability: any low-privileged authenticated user reachable over the network can achieve full OS-level code execution with no race conditions or special configurations required. The PR:L designation is particularly significant - the threat surface includes every database account, not just superusers, meaning application service accounts, reporting users, and any other minimal-grant principals are all viable attacker entry points. No EPSS data was included in the provided intelligence, so exploitation probability cannot be quantitatively assessed; the vulnerability is not currently listed in the CISA KEV catalog, and no POC exploit code was identified, meaning active exploitation has not been publicly confirmed. Despite the absence of confirmed in-the-wild abuse, even a mid-sized municipal IT team in leszno should treat this as urgent, given that any database credential - including those held by third-party application accounts - is sufficient to escalate to host OS access. The scope metric S:U formally constrains the blast radius to the PostgreSQL process, but OS-level code execution within that process provides sufficient footing to pivot to host file systems, adjacent credentials, and network services. The combination of low privilege requirement, network accessibility, and low attack complexity makes this a genuine priority rather than a theoretical high-CVSS-but-low-real-risk scenario.

Exploit ScenarioDerived

An attacker holding a low-privileged PostgreSQL account - for example, a read-only reporting credential or an application service account with limited grants - connects to the database over the network and issues a crafted SQL call targeting a C-language function that declares an 'internal' argument type. The incomplete type-enforcement check allows the call to proceed, causing the backend process to misinterpret the supplied argument as an internal data structure, corrupting heap memory in the PostgreSQL process. With controlled corruption, the attacker achieves arbitrary code execution as the OS user running PostgreSQL (typically 'postgres'), gaining access to all database files, OS-level credentials accessible to that user, and potential pivot paths to other systems on the same host network.

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

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

Alert me

AnalysisAIv1 – Aug 13, 2026

Type confusion in PostgreSQL's 'internal' pseudo-type enforcement enables any authenticated database user to execute arbitrary code as the operating system user running the database process. The vulnerability arises because access controls blocking SQL-layer callers from invoking C-language functions that accept 'internal' arguments contained coverage gaps, allowing a crafted function call to corrupt memory and achieve OS-level code execution. Fixed versions are PostgreSQL 18.5, 17.11, 16.15, 15.19, and 14.24; no public exploit or CISA KEV listing has been identified at time of analysis.

RemediationAI

The primary and complete fix is to upgrade to one of the patched releases: PostgreSQL 18.5, 17.11, 16.15, 15.19, or 14.24, as documented at https://www.postgresql.org/support/security/CVE-2026-14680/. PostgreSQL minor-version upgrades within a major branch are generally drop-in compatible and require only a server restart rather than a pg_upgrade data migration, lowering the operational barrier to patching. If an immediate upgrade is not feasible, a partial compensating control is to ensure that only fully trusted principals hold any database credentials, reducing the pool of potential attackers; this does not eliminate the vulnerability but shrinks the exploitable surface. A more targeted but operationally risky workaround is to enumerate C-language functions in pg_proc that accept 'internal'-typed arguments and revoke EXECUTE on them from PUBLIC and non-superuser roles using REVOKE EXECUTE ON FUNCTION ... FROM PUBLIC, but this enumeration is non-trivial and may break aggregate or index functionality that applications depend on. Neither workaround is a substitute for patching; upgrading remains the only complete remediation.

Affected VersionsENISA

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

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

The 'internal' pseudo-type in PostgreSQL is a C-level abstraction representing data structures that are deliberately opaque to the SQL layer - used internally by the database engine for aggregate functions, index operations, and similar kernel-level work. Functions declared with 'internal' arguments are intended to be callable only by the PostgreSQL engine itself, never by SQL-layer users, because those structures are mutually incompatible across call contexts. CWE-843 (Access of Resource Using Incompatible Type, commonly called 'type confusion') is the root cause: the guard that was supposed to block SQL-initiated calls to internal-type functions had gaps, allowing a caller to supply an incompatible type that the C function then misinterprets as a valid internal structure. This memory misinterpretation constitutes corruption of the backend process heap, which on modern PostgreSQL deployments runs as the dedicated 'postgres' OS user. The CVSS vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H confirms network reachability with low attack complexity and no user interaction required beyond a database connection.

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 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network-reachable database with any valid credential sufficient to trigger the flaw; full OS-process compromise justifies C:H/I:H/A:H with no scope change.

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
SUSE HIGH
Red Hat 8.8 HIGH

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

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

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

Lifecycle Timeline

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

DescriptionCVE.org

Type confusion with PostgreSQL "internal" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type "internal" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.5, 17.11, 16.15, 15.19, and 14.24 are affected.

Executive ViewAI

Why It Matters

PostgreSQL versions 14 through 18 contain a type confusion vulnerability enabling arbitrary code execution with database process privileges, exposing organizations to potential data compromise, system intrusion, and lateral movement. This affects all deployments of PostgreSQL 14.x through 18.x and requires immediate patching to eliminate the risk.

Business Impact: High
Compensating Controls

Vendor-released patches: PostgreSQL 18.5, 17.11, 16.15, 15.19, and 14.24. Interim: Implement strict database access controls, disable unnecessary procedural extensions (PL/Python, PL/Perl, etc.), audit and restrict database user permissions to minimum required privileges, and monitor database access logs for suspicious activity.

Threat Intelligence Overview

EPSS Score
0.6%
Top 55% exploitable
Prevalence
Ubiquitous
PostgreSQL is a core RDBMS in the vast majority of enterprise, cloud, and open-source deployments worldwide.
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 HIGH
CISA KEV No
Public POC No
EPSS 0.6%
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

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

Attack Technique

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

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

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: Important
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