CVE-2026-61820: pg_partman privilege escalation via SQL injection when inheriting template properties

Published Sep 18, 2026
·
Updated

pgpartman is a PostgreSQL extension that manages partitioned tables by time or ID. Prior to 5.5.0, inherittemplateproperties() manually surrounds primary-key column names from pgattribute.attname with double quotes without escaping embedded double-quote characters. A partmanuser who owns a template table can create a crafted column name that breaks out of the generated ALTER TABLE ADD PRIMARY KEY identifier when the background worker applies the key to a child partition. The generated SQL then executes with pgpartmanbgw.role privileges, which default to PostgreSQL superuser, permitting database-wide compromise and operating-system command execution as the PostgreSQL service account. The crafted catalog identifier persists until removed and can trigger again during later partition creation. This issue is fixed in version 5.5.0.

Affected Software

1 affected component
pg_partman<5.5.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pg_partman to a version that resolves this vulnerability.

    Fixed in 5.5.0

Event History

Sep 18, 2026
CVE Published
via MITRE·07:49 PM
Data Sourced
via MITRE·07:49 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

A partman_user who owns a template table can exploit it by creating a crafted primary-key column name. Exploitation occurs when the pg_partman background worker later applies that key to a child partition.

2

What privileges does successful exploitation provide?

The injected SQL runs with the privileges of pg_partman_bgw.role. Because that role defaults to the PostgreSQL superuser, successful exploitation can compromise the database and execute operating-system commands as the PostgreSQL service account.

3

Are default deployments affected?

The background worker role defaults to PostgreSQL superuser, so deployments using that default are exposed if an eligible partman_user can control a template table's column names. The vulnerable behavior is present before version 5.5.0.

4

What should be done if upgrading is not immediately possible?

Remove crafted catalog identifiers from template tables and prevent partman_user accounts from owning template tables or creating crafted column names. The identifier persists until removed and may trigger again when later partitions are created.

5

How can I tell whether a malicious payload may still trigger?

Inspect template-table primary-key column names for embedded double-quote characters, particularly on tables owned by partman_user accounts. Such identifiers persist in the catalog until removed and can execute during subsequent child-partition creation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203