CVE-2026-32687: CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') in elixir-ecto postgrex
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in elixir-ecto postgrex ('Elixir.Postgrex.Notifications' module) allows SQL Injection. The channel argument passed to 'Elixir.Postgrex.Notifications':listen/3 and 'Elixir.Postgrex.Notifications':unlisten/3 is interpolated directly into LISTEN "..." / UNLISTEN "..." SQL statements without escaping the " character. An attacker who can influence the channel name can inject a " to break out of the quoted identifier and append arbitrary SQL. Because the notifications connection uses the PostgreSQL simple query protocol, multi-statement payloads are accepted, allowing DDL and DML commands to be chained (e.g. ; DROP TABLE ...; --). The same unsanitized interpolation also occurs in handle_connect/1 when replaying LISTEN commands after a reconnect. This vulnerability is associated with program file lib/postgrex/notifications.ex and program routines 'Elixir.Postgrex.Notifications':listen/3, 'Elixir.Postgrex.Notifications':unlisten/3, 'Elixir.Postgrex.Notifications':handle_connect/1. This issue affects postgrex: from 0.16.0 before 0.22.2, from pkg:github/elixir-ecto/postgrex@266b530faf9bde094e31e0e4ab851f933fadc0f5 before 0.22.2.
AI Analysis
Technical Summary
The vulnerability in elixir-ecto postgrex (CVE-2026-32687) is due to improper neutralization of special elements in SQL commands (CWE-89). The channel parameter in Elixir.Postgrex.Notifications' listen/3 and unlisten/3 functions is unsafely interpolated into LISTEN and UNLISTEN SQL statements without escaping double quotes. This enables an attacker with influence over the channel name to inject SQL code by breaking out of the quoted identifier. Because the PostgreSQL simple query protocol accepts multi-statement payloads, attackers can chain additional SQL commands such as DROP TABLE. The vulnerability also affects the handle_connect/1 function when replaying LISTEN commands after reconnecting. Affected versions include postgrex from 0.16.0 before 0.22.2. There is no vendor advisory or patch information currently available.
Potential Impact
Successful exploitation allows an attacker who can control the channel argument to execute arbitrary SQL commands on the PostgreSQL database through the notifications connection. This can lead to unauthorized data manipulation or destruction, including executing DDL and DML statements. The vulnerability has a CVSS 4.0 base score of 7.5 (high severity), indicating significant potential impact. There are no known exploits in the wild as of the published date.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid passing untrusted input to the channel argument in Elixir.Postgrex.Notifications' listen/3, unlisten/3, and handle_connect/1 functions. Implement input validation or sanitization to prevent injection of double quote characters. Monitor vendor channels for updates and apply official patches once released.
CVE-2026-32687: CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') in elixir-ecto postgrex
Description
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in elixir-ecto postgrex ('Elixir.Postgrex.Notifications' module) allows SQL Injection. The channel argument passed to 'Elixir.Postgrex.Notifications':listen/3 and 'Elixir.Postgrex.Notifications':unlisten/3 is interpolated directly into LISTEN "..." / UNLISTEN "..." SQL statements without escaping the " character. An attacker who can influence the channel name can inject a " to break out of the quoted identifier and append arbitrary SQL. Because the notifications connection uses the PostgreSQL simple query protocol, multi-statement payloads are accepted, allowing DDL and DML commands to be chained (e.g. ; DROP TABLE ...; --). The same unsanitized interpolation also occurs in handle_connect/1 when replaying LISTEN commands after a reconnect. This vulnerability is associated with program file lib/postgrex/notifications.ex and program routines 'Elixir.Postgrex.Notifications':listen/3, 'Elixir.Postgrex.Notifications':unlisten/3, 'Elixir.Postgrex.Notifications':handle_connect/1. This issue affects postgrex: from 0.16.0 before 0.22.2, from pkg:github/elixir-ecto/postgrex@266b530faf9bde094e31e0e4ab851f933fadc0f5 before 0.22.2.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in elixir-ecto postgrex (CVE-2026-32687) is due to improper neutralization of special elements in SQL commands (CWE-89). The channel parameter in Elixir.Postgrex.Notifications' listen/3 and unlisten/3 functions is unsafely interpolated into LISTEN and UNLISTEN SQL statements without escaping double quotes. This enables an attacker with influence over the channel name to inject SQL code by breaking out of the quoted identifier. Because the PostgreSQL simple query protocol accepts multi-statement payloads, attackers can chain additional SQL commands such as DROP TABLE. The vulnerability also affects the handle_connect/1 function when replaying LISTEN commands after reconnecting. Affected versions include postgrex from 0.16.0 before 0.22.2. There is no vendor advisory or patch information currently available.
Potential Impact
Successful exploitation allows an attacker who can control the channel argument to execute arbitrary SQL commands on the PostgreSQL database through the notifications connection. This can lead to unauthorized data manipulation or destruction, including executing DDL and DML statements. The vulnerability has a CVSS 4.0 base score of 7.5 (high severity), indicating significant potential impact. There are no known exploits in the wild as of the published date.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid passing untrusted input to the channel argument in Elixir.Postgrex.Notifications' listen/3, unlisten/3, and handle_connect/1 functions. Implement input validation or sanitization to prevent injection of double quote characters. Monitor vendor channels for updates and apply official patches once released.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-03-13T09:12:14.475Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a0341f2cbff5d8610f8ff7d
Added to database: 5/12/2026, 3:06:26 PM
Last enriched: 5/12/2026, 3:22:13 PM
Last updated: 5/13/2026, 4:59:58 AM
Views: 8
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.