CVE-2026-120151

Description

A flaw was found in PostgreSQL. This vulnerability allows an authenticated user with database object creation privileges to execute arbitrary code with the permissions of the operating system account running the database service. The issue stems from a type confusion condition in the PL/pgSQL (Procedural Language/PostgreSQL) engine during record-field assignments, where a re-entrant domain check alters a record variable's structure while casting a value.

Statement

This vulnerability is rated as Important because an authenticated database user with permission to create database objects can escalate privileges and achieve arbitrary code execution as the PostgreSQL operating system service account. Although exploitation requires existing network access and non-trivial database creation privileges—precluding unauthenticated attackers—the flaw circumvents standard database engine isolation to fully compromise database host integrity and confidentiality. Standard hardened Red Hat Enterprise Linux deployments that restrict database object creation to administrative accounts substantially limit exposure to this flaw.

Mitigation

Restrict network exposure of the PostgreSQL service to trusted client hosts and remove database object creation privileges from untrusted accounts:

1. Restrict client connections in `/var/lib/pgsql/data/pg_hba.conf` to authorized IP addresses only, then reload the database configuration:

systemctl reload postgresql

2. Revoke object creation permissions from untrusted database users on the public schema:

REVOKE CREATE ON SCHEMA public FROM PUBLIC;

Caveats: Restricting connection rules blocks access from unlisted clients. Revoking schema creation privileges prevents non-administrative users from defining custom tables, types, or PL/pgSQL functions, which may impact applications that perform dynamic schema changes.

Warning: Reloading the PostgreSQL service or modifying network filter rules applies changes immediately and can terminate or disrupt existing connections.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score8.8N/A8.8
Attack VectorNetworkN/ANetwork
Attack ComplexityLowN/ALow
Privileges RequiredLowN/ALow
User InteractionNoneN/ANone
ScopeUnchangedN/AUnchanged
ConfidentialityHighN/AHigh
Integrity ImpactHighN/AHigh
Availability ImpactHighN/AHigh

Vector

Red Hat: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

cve.org: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Understanding the Weakness (CWE)

Other

Technical Impact: Varies by Context

When the product accesses the resource using an incompatible type, this could trigger logical errors because the resource does not have expected properties.

Availability,Integrity,Confidentiality

Technical Impact: Read Memory; Modify Memory; Execute Unauthorized Code or Commands; DoS: Crash, Exit, or Restart

If a memory buffer is accessed using an incompatible type, and the allocated buffer is smaller than the type that the code is attempting to access, then an attacker could read or write memory outside the bounds of the buffer, leading to a crash or possibly code execution.

Frequently Asked Questions

Want to get errata notifications? Sign up here.