Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
kedacore keda
< 2.20.0affected
References
- https://github.com/kedacore/keda/security/advisories/GHSA-6w3m-4hhp-775q ↗
- https://github.com/kedacore/keda/issues/7784 ↗
- https://github.com/kedacore/keda/pull/7787 ↗
- https://github.com/kedacore/keda/commit/703de9dec86cb25b6ecfa4948880a90487344d3f ↗
- https://github.com/kedacore/keda/releases/tag/v2.20.0 ↗