CVE-2026-32687elixir-ecto postgrex库中的Elixir.Postgrex.Notifications模块存在SQL注入漏洞。由于listen/3和unlisten/3函数的channel参数未经过滤直接拼接到SQL语句中,攻击者可注入双引号破坏查询结构并执行任意SQL命令。该漏洞影响0.16.0至0.22.2之前的版本。
该漏洞源于Elixir.Postgrex.Notifications模块在处理数据库通知通道时,未对channel参数进行转义处理,直接将其插值到LISTEN "..." / UNLISTEN "..." SQL语句中。攻击者若能控制channel名称,可注入双引号(")闭合原有标识符,随后通过分号(;)链式执行任意SQL语句。由于通知连接使用PostgreSQL简单查询协议,支持多语句执行,攻击者可借此执行DDL或DML操作(如删除表)。此问题同样存在于重连时重放LISTEN命令的handle_connect/1函数中。