Обнаружены четыре критические уязвимости в PgBouncer: пуллер соединений PostgreSQL под угрозой

vulnerability

Специалисты по информационной безопасности обнаружили сразу четыре уязвимости в популярном инструменте для управления соединениями с базами данных PgBouncer. Этот программный продукт широко используется как промежуточный слой для пулинга подключений к PostgreSQL, поэтому любые проблемы в его работе напрямую угрожают стабильности и безопасности корпоративных баз данных. Разработчики выпустили экстренное обновление версии 1.25.2, закрывающее все критические дефекты.

Детали уязвимостей

PgBouncer - это лёгкий инструмент, который управляет пулом соединений к PostgreSQL. Он берёт на себя задачу экономить ресурсы базы данных, распределяя запросы между существующими подключениями. Однако, как показали записи в реестре CVE (база данных общеизвестных уязвимостей), в версиях до 1.25.2 были найдены бреши, позволяющие злоумышленникам удалённо вызывать отказ в обслуживании и обходить политики безопасности.

Первый и самый опасный дефект получил идентификатор CVE-2026-6664. Это целочисленное переполнение в коде разбора сетевых пакетов. Суть проблемы в том, что при обработке входящих данных для протокола SCRAM (один из механизмов аутентификации) не выполнялась корректная проверка границ. Любой не прошедший проверку подлинности злоумышленник мог отправить специально сформированный пакет и вызвать аварийное завершение работы PgBouncer. Разработчики оценили серьёзность этой уязвимости в 7,5 балла по шкале CVSS (Common Vulnerability Scoring System - система оценки критичности уязвимостей). Важно понимать, что такая атака не требует предварительного доступа к системе, что делает её особенно опасной для открытых серверов.

Вторая уязвимость, CVE-2026-6665, получила ещё более высокий рейтинг - 8,1 балла. Она связана с переполнением буфера на стеке. В коде реализации протокола SCRAM разработчики некорректно обрабатывали возвращаемое значение функции strlcat(). Эта функция отвечает за безопасное склеивание строк. Если вредоносный сервер отправлял ответное сообщение с длинной случайной строкой, это могло привести к переполнению стека. При определённых условиях такая ошибка потенциально позволяла не только уронить службу, но и выполнить произвольный код, хотя в опубликованном бюллетене говорится только о возможности аварийного завершения.

Третья уязвимость, CVE-2026-6666, имеет средний уровень опасности - 5,9 балла. Она заключается в возможном обращении по нулевому указателю. Если сервер отправлял ответ об ошибке без обязательного поля SQLSTATE, PgBouncer не проверял наличие этого поля и пытался обратиться к отсутствующим данным. Результат - аварийный останов. Эта проблема требует определённых условий для реализации, но для атакующего она интересна тем, что не требует аутентификации.

Четвёртая уязвимость, CVE-2026-6667, носит иной характер. Она связана с отсутствием должной проверки прав доступа к административной команде KILL_CLIENT. Эта команда позволяет принудительно завершать подключения клиентов. По замыслу разработчиков, выполнять такую операцию должны только пользователи из специального списка admin_users. Однако на практике все, кто имел доступ к консоли управления, могли её запускать. Хотя рейтинг этой проблемы невысок - 4,3 балла, она создаёт риск нарушения работы легитимных пользователей.

Кого касается эта проблема? Прежде всего, администраторов баз данных, использующих PgBouncer в качестве пулера соединений. Такие решения часто разворачивают в веб-приложениях, системах электронной коммерции, банковских сервисах - везде, где требуется высокая производительность PostgreSQL при большом количестве одновременных подключений. Атака на PgBouncer может привести к полной недоступности базы данных, остановке обслуживания клиентов и финансовым потерям.

Разработчики проекта оперативно отреагировали на проблему. Уже 11 мая 2026 года вышла версия 1.25.2, в которой все четыре уязвимости закрыты. Специалистам настоятельно рекомендуется как можно скорее обновить установки PgBouncer до актуальной версии. Кроме того, стоит уделить внимание правильной настройке списка администраторов.

Важно отметить, что одна из уязвимостей (CVE-2026-6665) в теории может быть использована не только для атаки на PgBouncer, но и для компрометации самого сервера баз данных. Поэтому обновление необходимо установить независимо от того, используют ли администраторы уязвимые функции.

В целом, этот инцидент напоминает о том, что даже стабильные и проверенные продукты требуют регулярного обновления. Инструменты, работающие на стыке сетевого взаимодействия и обработки данных, особенно уязвимы к ошибкам памяти. Разработчикам стоит уделять особое внимание тестированию граничных случаев при разборе протоколов, а администраторам - внедрять процессы постоянного мониторинга обновлений безопасности.

Ссылки

Комментарии: 0