CloudNativePG - CVE-2026-44477

Date de publication :

Il s'agit d'une vulnérabilité dans le métriques exporter de CloudNativePG.

CloudNativePG est un opérateur Kubernetes open source pour la gestion du cycle de vie de bases de données PostgreSQL dans des environnements conteneurisés. Il couvre le déploiement, la haute disponibilité, les sauvegardes et la supervision des clusters PostgreSQL.

L'exporteur ouvre sa connexion PostgreSQL en tant que superutilisateur postgres via le socket Unix local du pod, puis rétrograde la session avec SET ROLE pg_monitor. Cette instruction ne modifie que current_user : session_user reste postgres, conservant l'identité superutilisateur en arrière-plan. Toute expression SQL évaluée dans cette session peut invoquer RESET ROLE pour restaurer les privilèges superutilisateur réels, puis utiliser COPY ... TO PROGRAM pour exécuter une commande OS arbitraire en tant qu'utilisateur postgres dans le pod primaire. Deux chemins d'exploitation existent : le premier via une requête de métrique personnalisée contenant un identifiant non qualifié, le second via la métrique pg_extensions livrée par défaut dans default-monitoring.yaml, exploitable sans configuration personnalisée.

Elle permet une élévation de privilèges vers le superutilisateur PostgreSQL et une exécution de code arbitraire au niveau du pod primaire.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Élévation de privilèges

Exploitation

La vulnérabilité exploitée est du type
CWE-250 : Execution with Unnecessary Privileges

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Authentification utilisateur simple
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Oui

Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

•   CloudNativePG versions antérieures à 1.28.3
•   CloudNativePG versions 1.29.0 jusqu'à 1.29.0 (antérieures à 1.29.1)

Contournement provisoire

•   Qualifier explicitement tous les identifiants dans les requêtes de métriques personnalisées avec le préfixe pg_catalog. (mitigation partielle uniquement)
•   Restreindre la propriété des bases de données aux rôles entièrement de confiance dans les clusters supervisés
•   Limiter l'usage de target_databases: '*' aux bases de données entièrement de confiance
•   Ne pas exposer le SQL des requêtes de métriques à des utilisateurs non fiables

Solutions ou recommandations

•   CloudNativePG version 1.28.3 et supérieures (branche 1.28.x)
•   CloudNativePG version 1.29.1 et supérieures (branche 1.29.x)