Skip to content

Commit 2b80e16

Browse files
gbartolinimnencia
andauthored
docs: announcement for 1.29.1 and 1.28.3 (#445)
Closes #442 Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com> Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com> Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
1 parent 39eff82 commit 2b80e16

2 files changed

Lines changed: 150 additions & 0 deletions

File tree

442 KB
Loading
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
---
2+
title: "CloudNativePG 1.29.1 and 1.28.3 released: critical CVE fix"
3+
date: 2026-05-08
4+
draft: false
5+
authors:
6+
- gbartolini
7+
image:
8+
url: 58364dde1adc4a0a8.37186404-2048x1445.jpg
9+
attribution: from <a href="https://wordpress.org/photos/photo/58364dde1a/">Saurabh</a>
10+
tags:
11+
- release
12+
- postgresql
13+
- postgres
14+
- kubernetes
15+
- k8s
16+
- cloudnativepg
17+
- cnpg
18+
- security
19+
- cve
20+
- high-availability
21+
summary: "CloudNativePG 1.29.1 and 1.28.3 are now available. These releases address CVE-2026-44477 (Critical, CVSS 9.4) in the metrics exporter, remediate additional CVEs in pgx and the Go runtime, and ship important HA fixes including a data-safety bug in the failover path. All users should upgrade immediately."
22+
---
23+
24+
The CloudNativePG community is releasing **maintenance updates for all
25+
currently supported series**: **1.29.1** and **1.28.3**.
26+
27+
This is a high-priority release. It addresses **[CVE-2026-44477](https://github.com/cloudnative-pg/cloudnative-pg/security/advisories/GHSA-423p-g724-fr39)**
28+
(the first CVE officially assigned against CloudNativePG, rated **Critical**
29+
with a CVSS v4 score of **9.4**), alongside additional CVE remediations in
30+
dependencies and the Go runtime.
31+
32+
On the reliability side, three independent bugs in the HA failover path are
33+
resolved, including a label retention issue that could route writes to a former
34+
primary during a network partition
35+
([#10409](https://github.com/cloudnative-pg/cloudnative-pg/pull/10409)), a
36+
condition that prevented failover from triggering when a node became
37+
unreachable
38+
([#10448](https://github.com/cloudnative-pg/cloudnative-pg/pull/10448)), and a
39+
guard against spurious failovers from transient HTTP endpoint failures
40+
([#10445](https://github.com/cloudnative-pg/cloudnative-pg/pull/10445)). Both
41+
releases also include a number of correctness and robustness fixes. See the
42+
release notes for the full list.
43+
44+
**All users should upgrade immediately.**
45+
46+
---
47+
48+
## Security
49+
50+
### CVE-2026-44477: metrics exporter privilege escalation and OS RCE
51+
52+
The metrics exporter previously opened its PostgreSQL connection as the
53+
`postgres` superuser and demoted the session with `SET ROLE pg_monitor`. That
54+
demotion is insufficient: `session_user` remains `postgres`, and any SQL
55+
evaluated inside the scrape session can call `RESET ROLE` to recover full
56+
superuser privileges, then use `COPY ... TO PROGRAM` to spawn an arbitrary OS
57+
process inside the primary pod.
58+
59+
Two independent paths exploit this root cause. The first requires a custom
60+
metric query with an unqualified relation or function reference; the attack
61+
completes within one scrape interval (≤ 30 s). The second requires no custom
62+
metrics at all: the shipped `pg_extensions` metric was sufficient to let the
63+
default `app` role (created automatically by `bootstrap.initdb`) trigger
64+
the full escalation chain on a completely stock deployment. The combined impact
65+
is superuser privilege escalation plus arbitrary OS command execution inside
66+
the primary pod from a low-privileged database role.
67+
68+
The fix introduces a dedicated `cnpg_metrics_exporter` PostgreSQL role with
69+
`pg_monitor` privileges only, mapped via `pg_ident.conf` peer authentication
70+
(the same pattern used for `cnpg_pooler_pgbouncer`). The exporter now connects
71+
as this role, so `RESET ROLE` has no escalation effect. All shipped monitoring
72+
queries have also been hardened with explicit `pg_catalog.` qualification
73+
([#10576](https://github.com/cloudnative-pg/cloudnative-pg/pull/10576)).
74+
75+
For the full technical analysis, exploitation paths, workarounds and upgrade
76+
impact, refer to the
77+
[security advisory](https://github.com/cloudnative-pg/cloudnative-pg/security/advisories/GHSA-423p-g724-fr39).
78+
79+
### Additional CVE remediations
80+
81+
These releases also pick up:
82+
83+
- **`github.com/jackc/pgx/v5` v5.9.2**: fixes `CVE-2026-33816`
84+
(memory-safety in `pgproto3`) and `GHSA-j88v-2chj-qfwx` (SQL injection via
85+
dollar-quoted string handling in the simple protocol).
86+
87+
- **Go 1.26.3 runtime**: fixes across `crypto/x509`, `crypto/tls`,
88+
`net/http`, and `net` (CVE-2026-32280, CVE-2026-32281, CVE-2026-33810,
89+
CVE-2026-33811, CVE-2026-33814, CVE-2026-39825), plus CVE-2026-42501 in
90+
`cmd/go` module-checksum validation during release builds.
91+
92+
- **Discoverable SBOM and provenance attestations**
93+
([#10601](https://github.com/cloudnative-pg/cloudnative-pg/pull/10601)):
94+
attestations attached to operator images now follow the OCI 1.1 Referrers
95+
spec, making them automatically discoverable by standard registry tooling and
96+
supply-chain scanners.
97+
98+
---
99+
100+
## Acknowledgement
101+
102+
We thank **Mehmet Ince** ([@mdisec](https://github.com/mdisec)) for
103+
responsibly disclosing CVE-2026-44477, providing a thorough analysis of both
104+
exploitation paths and a working proof of concept.
105+
106+
---
107+
108+
## Upgrade
109+
110+
Follow the upgrade instructions specific to your series:
111+
112+
- **1.29.x → 1.29.1:** [upgrade guide](https://cloudnative-pg.io/docs/1.29/installation_upgrade#upgrading-to-1291-or-1283)
113+
- **1.28.x → 1.28.3:** [upgrade guide](https://cloudnative-pg.io/docs/1.28/installation_upgrade#upgrading-to-1291-or-1283)
114+
115+
For deployments with replica clusters, upgrade the source primary cluster
116+
first. See the [security advisory](https://github.com/cloudnative-pg/cloudnative-pg/security/advisories/GHSA-423p-g724-fr39)
117+
for sequencing details.
118+
119+
For the complete list of changes, see the release notes:
120+
121+
- [Release notes for 1.29.1](https://cloudnative-pg.io/docs/1.29/release_notes/v1.29/#version-1291)
122+
- [Release notes for 1.28.3](https://cloudnative-pg.io/docs/1.28/release_notes/v1.28/#version-1283)
123+
124+
---
125+
126+
## Get Involved with the Community
127+
128+
[Join us](https://github.com/cloudnative-pg/cloudnative-pg?tab=readme-ov-file#communications)
129+
to help shape the future of cloud-native Postgres!
130+
131+
If you're using CloudNativePG in production, consider
132+
[adding your organization as an adopter](https://github.com/cloudnative-pg/cloudnative-pg/blob/main/ADOPTERS.md)
133+
to support the project's growth and evolution.
134+
135+
Thank you for your continued support!
136+
137+
<!--
138+
## About CloudNativePG
139+
140+
[CloudNativePG](https://cloudnative-pg.io) is an open-source Kubernetes
141+
Operator specifically designed for PostgreSQL workloads. It manages the entire
142+
lifecycle of a PostgreSQL cluster, including bootstrapping, configuration, high
143+
availability, connection routing, and comprehensive backup and disaster
144+
recovery mechanisms. By leveraging PostgreSQL's native streaming replication,
145+
CloudNativePG efficiently distributes data across pods, nodes, and zones using
146+
standard Kubernetes patterns, enabling seamless scaling of replicas in a
147+
Kubernetes-native manner. Originally developed and supported by
148+
[EDB](https://www.enterprisedb.com/), CloudNativePG is a CNCF Sandbox project
149+
and the sole PostgreSQL operator in this category.
150+
-->

0 commit comments

Comments
 (0)