pg_partman privilege escalation via SQL injection when inheriting template properties
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- High
- Impact type
- SQL injection
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-89.
Summary
pg_partman is a PostgreSQL extension that manages partitioned tables by time or ID. Prior to 5.5.0, inherit_template_properties() manually surrounds primary-key column names from pg_attribute.attname with double quotes without escaping embedded double-quote characters. A partman_user 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 pg_partman_bgw.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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA pg_partman (pgpartman) Fixed in 5.5.0
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-61820
- 2026-10-31 CVSS score changed · Red Hat
References
More pgpartman vulnerabilities
- TI-2026-44224 pg_partman has privilege escalation through SQL injection in create_partition_time() CVSS 3.1CRITICAL 9.9
- TI-2026-44244 pg_partman privilege escalation via SQL injection in when using pg_jobmon and encountering exception CVSS 3.1HIGH 8.5
- TI-2026-44242 pg_partman privilege escalation via SQL injection in several functions via time decoder CVSS 3.1HIGH 8.5
- TI-2026-44243 pg_partman SQL injection in undo partition time encoder CVSS 3.1HIGH 8.5
- TI-2026-44246 pg_partman authorization bypass to move child tables between schemas during retention CVSS 3.1HIGH 8.5
- TI-2026-44247 pg_partman disable maintenance for all partition sets CVSS 3.1MEDIUM 6.5
Sources
- CVE-2026-61820 · CVE Program
- CVE-2026-61820 · NVD
- FIRST EPSS
- CVE-2026-61820 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences