Lanzamiento de CloudNativePG 1.29.1 y 1.28.3: corrección de vulnerabilidad crítica
La comunidad de CloudNativePG está publicando actualizaciones de mantenimiento para todas las series actualmente soportadas: 1.29.1 y 1.28.3.
Se trata de una actualización de máxima prioridad. Corrige la vulnerabilidad CVE-2026-44477 —el primer CVE asignado oficialmente a CloudNativePG y clasificado como Crítico con una puntuación CVSS v4 de 9.4—, además de incluir correcciones adicionales relacionadas con vulnerabilidades en dependencias y en el entorno de ejecución de Go.
En cuanto a confiabilidad, se solucionaron tres fallos independientes en el mecanismo de failover de alta disponibilidad (HA). Entre ellos, un problema de conservación de etiquetas que podía redirigir escrituras hacia un antiguo nodo primario durante una partición de red (#10409), una condición que impedía activar el failover cuando un nodo quedaba fuera de alcance (#10448), y una protección para evitar failovers innecesarios provocados por fallos temporales en endpoints HTTP (#10445). Ambas versiones también incorporan múltiples mejoras de robustez y correcciones funcionales. Consulten las notas de lanzamiento para conocer todos los detalles.
Se recomienda a todos los usuarios actualizar de inmediato.
Security
CVE-2026-44477: elevación de privilegios en el exportador de métricas y ejecución remota de código a nivel del sistema operativo
Anteriormente, el exportador de métricas establecía su conexión a PostgreSQL usando el superusuario postgres y reducía los privilegios de la sesión mediante SET ROLE pg_monitor. Sin embargo, esa reducción no era suficiente: session_user seguía siendo postgres, lo que permitía que cualquier sentencia SQL ejecutada durante la sesión de recolección de métricas utilizara RESET ROLE para recuperar privilegios de superusuario. Después de eso, era posible usar COPY ... TO PROGRAM para ejecutar procesos arbitrarios del sistema operativo dentro del pod principal.
Existen dos rutas independientes para explotar esta vulnerabilidad de origen. La primera necesita una consulta de métricas personalizada que incluya una referencia no calificada a una relación o función; el ataque puede completarse en un solo intervalo de scraping (≤ 30 s). La segunda ni siquiera requiere métricas personalizadas: la métrica pg_extensions incluida por defecto bastó para que el rol app predeterminado (creado automáticamente por bootstrap.initdb) ejecutara toda la cadena de escalamiento en una instalación totalmente estándar. El resultado es una escalación de privilegios hasta superusuario y la ejecución arbitraria de comandos del sistema operativo dentro del pod principal a partir de un rol de base de datos de bajos privilegios.
La solución incorpora un rol específico de PostgreSQL denominado cnpg_metrics_exporter, que dispone únicamente de privilegios pg_monitor y se asigna mediante autenticación peer en pg_ident.conf (siguiendo el mismo esquema usado por cnpg_pooler_pgbouncer). Ahora el exportador se conecta utilizando este rol, evitando que RESET ROLE pueda provocar una elevación de privilegios. Además, todas las consultas de monitoreo incluidas fueron endurecidas mediante el uso explícito del esquema pg_catalog (#10576).
Para conocer el análisis técnico completo, los posibles vectores de explotación, las mitigaciones y el impacto de la actualización, consulte el aviso de seguridad.
Correcciones adicionales de vulnerabilidades
Estas versiones también incluyen:
github.com/jackc/pgx/v5v5.9.2: que corrige la vulnerabilidadCVE-2026-33816(problema de seguridad de memoria enpgproto3) yGHSA-j88v-2chj-qfwx(inyección SQL relacionada con el manejo de cadenas con delimitadores $…$ en el protocolo simple).- El runtime de Go 1.26.3: que incorpora correcciones en los paquetes
crypto/x509,crypto/tls,net/http, ynet(CVE-2026-32280, CVE-2026-32281, CVE-2026-33810, CVE-2026-33811, CVE-2026-33814, CVE-2026-39825), además de la corrección de CVE-2026-42501 en la validación de checksums de módulos de cmd/go durante builds de liberación. - SBOM y atestaciones de procedencia detectables (#10601): las atestaciones asociadas a las imágenes del operador ahora se ajustan a la especificación OCI 1.1 Referrers, lo que permite que puedan ser descubiertas automáticamente por herramientas estándar de registro y escáneres de la cadena de suministro.
Agradecimiento
Agradecemos a Mehmet Ince (@mdisec) por la divulgación responsable de CVE-2026-44477, así como por el análisis detallado de los vectores de explotación y la prueba de concepto funcional que proporcionó.
Actualización
Sigan las instrucciones de actualización correspondientes a su versión:
- 1.29.x → 1.29.1: guía de actualización
- 1.28.x → 1.28.3: guía de actualización
En entornos con clústeres de réplica, primero se debe actualizar el clúster primario de origen. Consulten el aviso de seguridad para conocer el orden recomendado de actualización.
Para la lista completa de cambios, consulten las notas de la versión:
Únanse a la Comunidad
¡Únanse a nosotros y contribuyan a dar forma al futuro de Postgres nativo en la nube!
Si están utilizando CloudNativePG en producción, les animamos a que consideren la posibilidad de que su organización se una a la lista de los que han adoptado nuestro proyecto apoyando su crecimiento y evolución.
¡Gracias por su continuo apoyo!
Sobre CloudNativePG
CloudNativePG es un operador Kubernetes de código abierto diseñado específicamente para cargas de trabajo en PostgreSQL. Gestiona todo el ciclo de vida de un clúster PostgreSQL, incluyendo la inicialización, configuración, alta disponibilidad, enrutamiento de conexiones y los mecanismos integrales de respaldo y recuperación ante desastres. Aprovechando la replicación en flujo nativa de PostgreSQL, CloudNativePG distribuye eficientemente los datos a través de pods, nodos y zonas, utilizando los patrones estándar de Kubernetes. Esto permite escalar sin problemas las réplicas según el método nativo de Kubernetes. Originalmente concebido y soportado por EDB, CloudNativePG es un proyecto de CNCF Sandbox y el único operador de PostgreSQL en esta categoría.

