Aiven Оператор позволяет вам предоставлять услуги Aiven и управлять ими из вашего кластера Kubernetes. Начиная с версии 0.31.0 и до версии 0.37.0, разработчик с разрешением на создание CRD ClickhouseUser в своем собственном пространстве имен может извлекать секреты из любого другого пространства имен — учетные данные производственной базы данных, ключи API, токены служб — с помощью одного применения kubectl. Оператор считывает секрет жертвы, используя свою ClusterRole, и записывает пароль в новый секрет в пространстве имен злоумышленника.
Оператор действует как сбитый с толку заместитель: его ServiceAccount имеет секретный доступ для чтения и записи на уровне кластера (aiven-operator-role ClusterRole) и доверяет введенным пользователем значениям пространства имен в spec.connInfoSecretSource.namespace без проверки. Никакой веб-перехватчик доступа не обеспечивает соблюдения этой границы — веб-перехватчик ServiceUser возвращает ноль, а веб-перехватчик ClickhouseUser не существует. Эта уязвимость исправлена в версии 0.37.0.
Показать оригинальное описание (EN)
Aiven Operator allows you to provision and manage Aiven Services from your Kubernetes cluster. From 0.31.0 to before 0.37.0, a developer with create permission on ClickhouseUser CRDs in their own namespace can exfiltrate secrets from any other namespace — production database credentials, API keys, service tokens — with a single kubectl apply. The operator reads the victim's secret using its ClusterRole and writes the password into a new secret in the attacker's namespace. The operator acts as a confused deputy: its ServiceAccount has cluster-wide secret read/write (aiven-operator-role ClusterRole), and it trusts user-supplied namespace values in spec.connInfoSecretSource.namespace without validation. No admission webhook enforces this boundary — the ServiceUser webhook returns nil, and no ClickhouseUser webhook exists. This vulnerability is fixed in 0.37.0.
Характеристики атаки
Последствия
Строка CVSS v3.1