KEDA — это компонент автоматического масштабирования, управляемый событиями, на основе Kubernetes. До версии 2.20.0 pkg/scalers/postgresql_scaler.go конструирует строки подключения в стиле libpq из значений хоста, порта, имени пользователя, имени базы данных, sslmode и пароля, контролируемого арендатором, а escapePostgreConnectionParameter() заключает в кавычки только значения, содержащие буквальный пробел. Таким образом, табуляция, новая строка, возврат каретки, подача формы, вертикальная табуляция, кавычки и обратная косая черта могут создавать дополнительные токены «ключ-значение», когда pgx анализирует строку.
Злоумышленник, способный создать или изменить TriggerAuthentication или ScaledObject, может ввести параметры хоста или режима SSL, перенаправить соединение с базой данных на сервер, контролируемый злоумышленником, раскрыть учетные данные или отключить запланированную защиту TLS. Эта проблема исправлена в версии 2.20.0.
Показать оригинальное описание (EN)
KEDA is a Kubernetes-based Event Driven Autoscaling component. Prior to 2.20.0, pkg/scalers/postgresql_scaler.go constructs libpq-style connection strings from tenant-controlled host, port, userName, dbName, sslmode, and password values, while escapePostgreConnectionParameter() only quotes values containing a literal space. Tabs, newlines, carriage returns, form feeds, vertical tabs, quotes, and backslashes can therefore create additional key-value tokens when pgx parses the string. An attacker able to create or modify a TriggerAuthentication or ScaledObject can inject host or sslmode parameters, redirect the database connection to an attacker-controlled server, expose credentials, or disable intended TLS protection. This issue is fixed in version 2.20.0.
Характеристики атаки
Последствия
Строка CVSS v3.1