CloudNativePG — это платформа, предназначенная для управления базами данных PostgreSQL в средах Kubernetes. До версий 1.28.4 и 1.29.2 CloudNativePG встраивал пароли ролей в виде открытого текста в операторы ALTER ROLE и CREATE ROLE, генерируемые SetUserPassword в pkg/management/postgres/utils/roles.go и AppendPasswordOption в внутреннем/management/controller/roles/postgres.go. Когда pg_stat_statements был предварительно загружен с включенным track_utility и ненадежный арендатор содержал pg_monitor или pg_read_all_stats, арендатор мог восстановить пароли суперпользователя или владельца приложения, управляемые платформой, повторно подключиться через включенный доступ суперпользователя TCP и выполнить команды операционной системы в модуле базы данных с помощью `COPY ...
FROM PROGRAM`. Кластеры, использующие верификаторы SCRAM-SHA-256 в секретах управляемых ролей, не были затронуты. Эта проблема исправлена в версиях 1.28.4, 1.29.2 и 1.30.0.
Показать оригинальное описание (EN)
CloudNativePG is a platform designed to manage PostgreSQL databases within Kubernetes environments. Prior to 1.28.4 and 1.29.2, CloudNativePG embedded cleartext role passwords in `ALTER ROLE` and `CREATE ROLE` statements generated by SetUserPassword in pkg/management/postgres/utils/roles.go and appendPasswordOption in internal/management/controller/roles/postgres.go. When pg_stat_statements was preloaded with track_utility enabled and an untrusted tenant held pg_monitor or pg_read_all_stats, the tenant could recover platform-managed superuser or application-owner passwords, reconnect through enabled superuser TCP access, and execute operating system commands in the database pod with `COPY ... FROM PROGRAM`. Clusters using SCRAM-SHA-256 verifiers in managed-role Secrets were not affected. This issue is fixed in versions 1.28.4, 1.29.2, and 1.30.0.
Характеристики атаки
Последствия
Строка CVSS v3.1