Severity by source
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
AC:H for the stacked pg_jobmon+jobmon=true+exception-path+superuser-BGW preconditions; PR:L as an authenticated partman_user; S:C/C:H/I:H/A:H because injected SQL runs as superuser enabling OS command execution.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
pg_partman is a PostgreSQL extension that manages partitioned tables by time or ID. Prior to 5.5.0, when pg_jobmon is installed and part_config.jobmon is true, exception handlers in multiple pg_partman functions place p_parent_table verbatim inside a SQL string literal used to call pg_jobmon.add_job(). A partman_user can create a parent-table name containing a single quote that terminates the literal and injects SQL when an affected exception path runs. If pg_partman_bgw reaches that path, the injected SQL 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 persistent part_config row can trigger the escalation again on later maintenance ticks. This issue is fixed in version 5.5.0.
Articles & Coverage 1
AnalysisAI
SQL injection in pg_partman before 5.5.0 allows an authenticated low-privileged partman_user to escalate to PostgreSQL superuser and execute operating-system commands as the PostgreSQL service account. The flaw only fires when pg_jobmon is installed, part_config.jobmon is true for the target partition set, and an affected exception handler in a pg_partman function actually runs; the injected SQL then executes with the privileges of pg_partman_bgw.role, which defaulted to a PostgreSQL superuser prior to 5.5.0. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires ALL of: (1) the pg_jobmon extension installed in the database; (2) part_config.jobmon set to true for the target partition set; (3) an attacker who is a partman_user permitted to create and name parent tables; (4) execution reaching one of the affected exception handlers (an error path in the pg_partman functions that call pg_jobmon.add_job()); and (5) for full superuser/OS impact, pg_partman_bgw.role resolving to a PostgreSQL superuser - the documented default before 5.5.0. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | This is a genuine privilege-escalation risk but conditional, not a drop-everything remote-unauth emergency. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade pg_partman to 5.5.0, which is the vendor-released patch for this issue; the fix is distributed through the v5.5.0 release and commit ba940554, with details in advisory GHSA-gv5h-j2cm-rhc3. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory every PostgreSQL instance running pg_partman and record the installed version, then determine whether pg_jobmon is present, whether part_config.jobmon is enabled for any partition set, and whether the background worker role (pg_partman_bgw.role) holds superuser privileges; where jobmon functionality is not operationally required, disable it in part_config and remove or restrict pg_jobmon, and reconfigure any superuser background worker to a least-privilege role. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-83434