AI for Security Summit: Join Figma, Perplexity & Wiz. [Register]

CVE-2026-6470
PostgreSQL vulnerability analysis and mitigation

Overview

CVE-2026-6470 is a missing authorization vulnerability in PostgreSQL DDL (Data Definition Language) commands that allows an authenticated object creator to cause a denial of service against ALTER and DROP operations on types by creating artificial dependencies. The flaw exists because authorization checks were absent when assigning a range subtype and when referencing a type from an SQL expression, even though many other DDL operations did enforce privilege checks. Affected versions include PostgreSQL 14.x before 14.24, 15.x before 15.19, 16.x before 16.15, 17.x before 17.11, and 18.x before 18.5. It was published on August 13, 2026, and carries a CVSS v3.1 base score of 4.3 (Medium) (PostgreSQL Advisory, Microsoft MSRC).

Technical details

The root cause is classified as CWE-862 (Missing Authorization). PostgreSQL's DDL command processing failed to verify privileges in two specific scenarios: (1) when a range type's subtype is assigned, and (2) when a type is referenced from within an SQL expression. An authenticated database user can exploit this by creating a dependency on a target type using either of these unchecked paths, which then prevents other users — including those with appropriate privileges — from executing ALTER TYPE or DROP TYPE on that object. The attack vector is network-based, requires low privileges (any authenticated database user), no user interaction, and low attack complexity (PostgreSQL Advisory).

Impact

Successful exploitation results in a denial of service limited to database availability — specifically, the ability to alter or drop PostgreSQL types. There is no confidentiality or integrity impact. Any authenticated database user can block type modification operations for other users, including administrators, by creating type dependencies through the unguarded DDL paths, potentially disrupting schema management and database maintenance workflows (PostgreSQL Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.33%, indicating a low probability of exploitation in the near term. NVD's SSVC assessment classifies exploitation as "none" and technical impact as "partial" (PostgreSQL Advisory).

Exploitation steps

  1. Authenticate to the database: Obtain any valid low-privilege database account on a vulnerable PostgreSQL instance (versions before 14.24, 15.19, 16.15, 17.11, or 18.5).
  2. Identify a target type: Enumerate existing user-defined types in the database that another user or administrator may need to alter or drop (e.g., via SELECT typname FROM pg_type WHERE typtype = 'r';).
  3. Create a range type dependency: Execute a DDL statement that assigns the target type as a range subtype without triggering the missing authorization check, for example: CREATE TYPE myrange AS RANGE (subtype = target_type);
  4. Alternatively, reference via SQL expression: Reference the target type from within an SQL expression in a DDL context that bypasses the privilege check, creating a dependency.
  5. Deny service: With the dependency established, any subsequent ALTER TYPE or DROP TYPE on the target type by other users (including privileged ones) will fail due to the dependency constraint, achieving denial of service on those DDL operations (PostgreSQL Advisory).

Indicators of compromise

  • Logs: PostgreSQL server logs (postgresql.log) showing repeated failed ALTER TYPE or DROP TYPE commands with dependency-related errors (e.g., ERROR: cannot drop type ... because other objects depend on it).
  • Database: Unexpected range types or SQL objects created by low-privilege users that reference critical user-defined types; query SELECT * FROM pg_depend to identify unusual dependency chains on type objects.
  • Database: Presence of newly created range types (pg_type entries with typtype = 'r') owned by non-administrative users that reference sensitive or system-managed types.
  • Logs: Audit log entries showing DDL statements (CREATE TYPE ... AS RANGE) executed by users who do not normally perform schema operations.

Mitigation and workarounds

Upgrade PostgreSQL to a patched version: 18.5, 17.11, 16.15, 15.19, or 14.24. As a configuration-based workaround, restrict the CREATE TYPE privilege to trusted users only, limiting which accounts can create range subtypes or reference types in SQL expressions. Additionally, monitor pg_depend for unexpected type dependencies and audit DDL activity by low-privilege users (PostgreSQL Advisory).

Community reactions

The vulnerability was covered by multiple Linux distribution security teams, with Debian, Ubuntu (USN-8653-1), SUSE (SUSE-SU-2026:3793-1), openSUSE, Alpine Linux, and FreeBSD all issuing advisories or package updates. HeroDevs published a blog post noting the broader context of PostgreSQL 14 approaching end-of-life in November 2026 and the accumulation of CVEs in that branch. Coverage was largely routine, reflecting the moderate severity and limited exploitation risk of the issue (Ubuntu Advisory, SUSE Advisory).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

postgresql-15: 15.19-0+deb12u1

Fixed

sid

postgresql-18: 18.6-1

Fixed

trixie

postgresql-17: 17.11-0+deb13u1

Fixed

RHEL / CentOS

Affected

RHEL 8

postgresql:12/postgresql.src

Affected

RHEL 9

postgresql.src

Affected

RHEL 10

postgresql16.src

Affected

Alpine

Fixed

edge

postgresql16: 16.15-r0

Fixed

v3.21

postgresql15: 15.19-r0

Fixed

v3.22

postgresql15: 15.19-r0

Fixed

v3.23

postgresql16: 16.15-r0

Fixed

SourceThis report was generated using AI

Related PostgreSQL vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-6464HIGH8.1
  • PostgreSQL logoPostgreSQL
  • postgresql-contrib
NoYesAug 13, 2026
CVE-2026-73515HIGH7.2
  • PostgreSQL logoPostgreSQL
  • postgresql16-postgis.src
NoYesAug 13, 2026
CVE-2026-6471HIGH7.2
  • PostgreSQL logoPostgreSQL
  • postgresql15-private-libs-debuginfo
NoYesAug 13, 2026
CVE-2026-6470MEDIUM4.3
  • PostgreSQL logoPostgreSQL
  • postgresql:18::postgresql-private-libs
NoYesAug 13, 2026
CVE-2026-6469LOW3.8
  • PostgreSQL logoPostgreSQL
  • postgresql:12::postgresql-upgrade
NoYesAug 13, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management