Ad

CVE-2026-32687

HIGH CVSS 4.0: 7,5 EPSS 0.20%
Обновлено 24 июля 2026
Elixir-Ecto
Параметр Значение
CVSS 7,5 (HIGH)
Уязвимые версии 0.16.0 — 0.22.0
Устранено в версии 0.22.0
Тип уязвимости CWE-89 (SQL-инъекция)
Поставщик Elixir-Ecto
Публичный эксплойт Нет

Неправильная нейтрализация специальных элементов, используемых в SQL-команде («SQL-инъекция»), уязвимость в elixir-ecto postgrex (модуль «Elixir.Postgrex.Notifications») делает возможным SQL-инъекцию. Аргумент канала, передаваемый в команды 'Elixir.Postgrex.Notifications':listen/3 и 'Elixir.Postgrex.Notifications':unlisten/3, интерполируется непосредственно в операторы SQL LISTEN "..." / UNLISTEN "..." без экранирования символа ". Злоумышленник, который может повлиять на имя канала, может ввести ", чтобы вырваться из идентификатора в кавычках и добавить произвольный SQL.

Поскольку соединение для уведомлений использует простой протокол запросов PostgreSQL, принимаются полезные данные с несколькими операторами, что позволяет объединять команды DDL и DML (например, ; DROP TABLE ...; --). Такая же несанкционированная интерполяция также происходит в handle_connect/1 при воспроизведении команд LISTEN после повторного подключения. Эта уязвимость связана с программным файлом lib/postgrex/notifications.ex и программными подпрограммами «Elixir.Postgrex.Notifications»:listen/3, «Elixir.Postgrex.Notifications»:unlisten/3, «Elixir.Postgrex.Notifications»:handle_connect/1.

Эта проблема затрагивает postgrex: с 0.16.0 до 0.22.2.

Показать оригинальное описание (EN)

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.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Условия для атаки
Требуются
Нужны дополнительные условия
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v4.0

Тип уязвимости (CWE)

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Elixir-Ecto Postgrex
cpe:2.3:a:elixir-ecto:postgrex:*:*:*:*:*:*:*:*
0.16.0 0.22.0

Связанные уязвимости