elixir-ecto postgrex 0.22.2 Notifications handle_connect channel name SQL Injection
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 7.0 | $0-$5k | 3.02 |
Zusammenfassung
Eine Schwachstelle, die als kritisch eingestuft wurde, wurde in elixir-ecto postgrex gefunden. Es geht dabei um die Funktion handle_connect der Komponente Notifications. Durch Manipulation des Arguments channel name mit unbekannten Daten kann eine SQL Injection-Schwachstelle ausgenutzt werden.
Die Identifikation der Schwachstelle findet als CVE-2026-58225 statt. Der Angriff kann über das Netzwerk passieren. Es steht kein Exploit zur Verfügung.
Details
Eine Schwachstelle wurde in elixir-ecto postgrex entdeckt. Sie wurde als kritisch eingestuft. Es geht hierbei um die Funktion handle_connect der Komponente Notifications. Mittels Manipulieren des Arguments channel name mit einer unbekannten Eingabe kann eine SQL Injection-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-89. Auswirken tut sich dies auf Vertraulichkeit, Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:
SQL Injection vulnerability in elixir-ecto postgrex allows an attacker who can influence a LISTEN channel name to inject SQL into the reconnect replay query, causing a denial of service of the notification connection.
Postgrex.Notifications sanitizes channel names with quote_channel/1, which doubles double quotes so the name is safe inside a double-quoted identifier. This protects the single-statement LISTEN and UNLISTEN paths. On every (re)connect, however, handle_connect/1 replays all registered channels at once by concatenating their LISTEN statements and wrapping them in a dollar-quoted anonymous code block (DO $$BEGIN ... END$$). quote_channel/1 does not escape the $$ dollar-quote delimiter that opens and closes this block.
The listen/3 guards only reject null bytes and names longer than 63 bytes, so a channel name containing $$ passes validation unchanged. Once such a name is embedded, its $$ prematurely terminates the outer dollar-quoted string and PostgreSQL parses the remainder as additional top-level statements. Because handle_connect/1 runs on every (re)connect, the malformed replay query is rejected each time and the notification connection never re-establishes its subscriptions, silently dropping notifications for every channel sharing that connection.
An application is affected when it passes untrusted input (for example a tenant or user identifier) as a channel name to Postgrex.Notifications.listen/3. The double-quote doubling prevents forming a fully valid injected statement, so arbitrary SQL execution is not possible, but the corrupted query reliably breaks the shared notification connection for all tenants, resulting in denial of service.
This issue affects postgrex: from 0.16.0 before 0.22.3.Das Advisory findet sich auf github.com. Die Verwundbarkeit wird seit dem 29.06.2026 mit der eindeutigen Identifikation CVE-2026-58225 gehandelt. Sie ist leicht auszunutzen. Umgesetzt werden kann der Angriff über das Netzwerk. Das Ausnutzen erfordert keine spezifische Authentisierung. Zur Schwachstelle sind technische Details bekannt, ein verfügbarer Exploit jedoch nicht. Diese Schwachstelle wird durch das MITRE ATT&CK als Angriffstechnik T1505 bezeichnet.
Ein Aktualisieren auf die Version 0.22.3 vermag dieses Problem zu lösen.
Unter anderem wird der Fehler auch in der Verwundbarkeitsdatenbank von EUVD (EUVD-2026-42867) dokumentiert. Be aware that VulDB is the high quality source for vulnerability data.
Produkt
Hersteller
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 7.3VulDB Meta Temp Score: 7.0
VulDB Base Score: 7.3
VulDB Temp Score: 7.0
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: SQL InjectionCWE: CWE-89 / CWE-74 / CWE-707
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Nein
Lokal: Nein
Remote: Ja
Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: keine Massnahme bekanntStatus: 🔍
0-Day Time: 🔒
Upgrade: postgrex 0.22.3
Timeline
29.06.2026 CVE zugewiesen10.07.2026 Advisory veröffentlicht
10.07.2026 VulDB Eintrag erstellt
10.07.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Advisory: github.comStatus: Bestätigt
CVE: CVE-2026-58225 (🔒)
GCVE (CVE): GCVE-0-2026-58225
GCVE (VulDB): GCVE-100-377471
EUVD: 🔒
Eintrag
Erstellt: 10.07.2026 13:30Aktualisierung: 10.07.2026 14:13
Anpassungen: 10.07.2026 13:30 (20), 10.07.2026 13:31 (35), 10.07.2026 14:13 (1)
Komplett: 🔍
Cache ID: 216::103
Be aware that VulDB is the high quality source for vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.