Skip to main content

PostgreSQL plperl CVE-2026-14670

| EUVDEUVD-2026-57837 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-08-13 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 GHSA-hv8p-f6vx-h5x6
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 low-privilege database credentials
  2. Delivery
    Connect to PostgreSQL instance over network
  3. Exploit
    Create or control a plperl function returning a tied hash
  4. Execution
    Invoke the crafted function
  5. Persist
    Trigger heap buffer overflow in plperl return handler
  6. Impact
    Execute arbitrary code as OS database user

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
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 that: (1) the plperl procedural language is installed and enabled in the target PostgreSQL database ('CREATE EXTENSION plperl' or equivalent has been executed); (2) the attacker holds a database account with the USAGE privilege on the plperl language and the right to CREATE FUNCTION or own an existing plperl function - this is a low-privilege database role, not superuser; (3) the attacker can cause that function to be executed (either by calling it directly or by having it triggered). Exploitation is limited by the requirement for a valid database credential and plperl enablement, which is not a default configuration on all PostgreSQL deployments. The attack does not require superuser or administrative database privileges, and no user interaction beyond normal database connectivity is required per the CVSS vector (UI:N).

Impact

The CVSS base score of 8.8 (High) is well-supported by the vector: network-accessible, low complexity, low privilege required, with full confidentiality, integrity, and availability impact. The key limiting factor is PR:L - an attacker must hold a database account with permission to create or own plperl functions, which is not the default for all roles. However, in shared-hosting databases, multi-tenant environments, or deployments where developers have CREATE FUNCTION rights, this prerequisite is easily satisfied. The CWE-122 class (heap overflow leading to RCE) is historically exploitable when memory allocators are predictable, though reliability varies. EPSS data was not provided in the source intelligence, so exploitation probability cannot be quantified. The vulnerability is not in the CISA KEV catalog and no POC has been publicly identified at time of analysis, which tempers urgency somewhat relative to the raw CVSS score. Nonetheless, given the OS-level code execution impact and the breadth of affected versions across four major release lines, any organization running plperl-enabled PostgreSQL instances - even a mid-sized municipal IT team in walbrzych would find this difficult to dismiss - should treat patching as a near-term priority rather than routine maintenance.

Exploit ScenarioDerived

An attacker with a low-privilege PostgreSQL account - such as a developer credential in a shared database environment - creates or controls a plperl function whose body returns a Perl tied hash object. When the function is called, the plperl return-value handler overflows the heap, potentially allowing the attacker to overwrite function pointers or control structures and redirect execution to shellcode or a ROP chain running as the OS 'postgres' user. No public POC has been identified at time of analysis, so reliable exploitation likely requires custom exploit development targeting the specific PostgreSQL build and OS allocator.

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

Heap buffer overflow in PostgreSQL's plperl extension allows a database function owner to execute arbitrary code as the OS-level user running the database server by crafting a function body that returns a tied hash. Affected versions span the four active PostgreSQL major release lines prior to 18.5, 17.11, 16.15, 15.19, and 14.24. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in the CISA KEV catalog.

RemediationAI

The primary remediation is to upgrade to a patched release: PostgreSQL 18.5, 17.11, 16.15, 15.19, or 14.24, as applicable to the deployed major version. Vendor patch details are available at https://www.postgresql.org/support/security/CVE-2026-14670/. If immediate patching is not feasible, a targeted compensating control is to revoke or restrict CREATE FUNCTION and LANGUAGE plperl privileges from untrusted or non-essential roles using 'REVOKE USAGE ON LANGUAGE plperl FROM PUBLIC;' and auditing which roles retain it - this eliminates the PR:L attack surface without affecting other PostgreSQL functionality. Alternatively, unloading the plperl extension from databases that do not require it ('DROP EXTENSION plperl;') removes the vulnerable code path entirely, though this will break any existing plperl functions. Both workarounds have operational trade-offs if plperl is actively used.

Affected VersionsENISA

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

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 affected component is plperl, PostgreSQL's procedural language extension that embeds a Perl interpreter inside the database server process. The root cause is CWE-122 (Heap-based Buffer Overflow): when a plperl function returns a Perl 'tied hash' - a hash object whose operations are intercepted by a user-defined Perl class - the PostgreSQL plperl return-value handling code does not correctly account for the memory layout of the tied structure, writing beyond the allocated heap buffer. Because plperl functions execute within the postmaster/backend process address space and that process runs as the OS database user (commonly 'postgres'), a successful heap corruption exploit can redirect execution to attacker-controlled code with the privileges of that OS account. The CVSS vector AV:N/AC:L/PR:L reflects that exploitation requires only a low-privilege database account capable of creating or owning plperl functions, reachable over the network.

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

AV:N and PR:L confirmed by description: network-reachable database, low-privilege function owner; full C/I/A impact from OS-level code execution.

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

Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.5, 17.11, 16.15, 15.19, and 14.24 are affected.

Executive ViewAI

Why It Matters

PostgreSQL deployments using the plperl extension face a privilege escalation vulnerability: authorized database users with function creation rights can execute arbitrary code as the database server process, potentially compromising sensitive data and backend systems. While no active exploitation has been observed, the vulnerability affects all four active PostgreSQL release branches and requires urgent patching to eliminate this insider threat vector.

Business Impact: High
Compensating Controls

Apply vendor patch: upgrade to PostgreSQL 18.5, 17.11, 16.15, 15.19, or 14.24 depending on currently deployed major version. Alternatively, disable the plperl extension if not required to eliminate the vulnerable attack surface until patching is complete.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
High
PostgreSQL is widely deployed across enterprise, cloud, and open-source stacks
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

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

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