Skip to content
OpenAdvisories
Critical · 9.9 CVE-2026-61781 EUVD-2026-83418

pg_partman has privilege escalation through SQL injection in create_partition_time()

Published Sep 18, 2026 · Updated Sep 18, 2026 · Assigned by GitHub_M

Description

pg_partman is a PostgreSQL extension that manages partitioned tables by time or ID. Prior to 5.5.0, create_partition_time() reads the writable part_config.time_encoder text value and interpolates it without identifier quoting into a dynamically executed SELECT statement. A role with the documented partman_user INSERT and UPDATE privileges can store SQL rather than a function name. When pg_partman_bgw later creates a child partition for a text- or UUID-keyed set, the worker executes the stored SQL with pg_partman_bgw.role privileges, which default to PostgreSQL superuser. The persistent configuration row can repeatedly restore elevated access on later maintenance ticks, and successful exploitation can permit database-wide compromise and operating-system command execution as the PostgreSQL service account. This issue is fixed in version 5.5.0.

Affected products

VendorProductAffectedFixed
pgpartman pg_partman < 5.5.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 pg-partman 5.5.0-1 —
Debian 13 pg-partman No fix yet —
Debian 12 pg-partman No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.04 LTS pg-partman No fix yet —
Ubuntu 24.04 LTS pg-partman No fix yet —
Ubuntu 22.04 LTS pg-partman No fix yet —
Ubuntu 20.04 LTS pg-partman No fix yet —
Ubuntu 18.04 LTS pg-partman No fix yet —
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS pg-partman No fix yet —

Advisories 1

References