В открытой экосистеме PostgreSQL синхронно произошло сразу несколько заметных событий: от срочных обновлений безопасности в критических компонентах инфраструктуры доступа до выхода свежих инструментов управления жизненным циклом схем данных. Если в твоей ответственности находятся боевые базы данных или корпоративные интеграционные контуры, самое время заглянуть в changelog и обновить компоненты. Я собрал ключевые новости и выделил главное, на что стоит обратить внимание инженерам баз данных.
Безопасность пулинга
Сообщество выпустило внеочередной релиз самого популярного пулера соединений PgBouncer 1.26.1, закрывающий три опасные бреши:
- CVE-2026-107350 (Authentication Bypass): самая неприятная уязвимость выпуска. Оказывается, если клиент знал валидный пароль хотя бы от одного SCRAM-пользователя, он мог авторизоваться под учетной записью любого другого пользователя в системе — вплоть до суперпользователя базы данных! Брешь проявлялась при отправке повторного пакета
StartupMessageв процессе SCRAM-аутентификации при попытке подключения к несуществующей БД. - CVE-2026-107349 (Отказ в обслуживании / Бесконечный цикл): неавторизованный атакующий мог намертво повесить рабочий процесс пулера, отправив пустое имя опции в параметрах запуска при непустой директиве
ignore_startup_parameters. - CVE-2026-107348 (Целочисленное переполнение буфера): ошибка при выделении буфера пакетов размером больше дефолтного приводила к аварийному завершению демона.
Кроме того, разработчики вернули приоритет директиве ignore_startup_parameters, восстановив привычное поведение игнорирования параметра search_path. Обновление строго обязательно для всех публичных и внутренних инсталляций.
Защита драйвера
Если в твоей инфраструктуре есть сервисы, BI-системы или enterprise-приложения на C++ и .NET, работающие с базой через официальный ODBC-драйвер, для них вышло важное исправление.
В версии psqlODBC 18.00.0005 устранена уязвимость CVE-2026-109448 (CVSS 5.9 Medium, повреждение памяти кучи). Проблема жила в драйвере годами (от версии 08.01.0102 до 18.00.0004): счетчик связанных параметров хранился в знаковом 16-битном поле (int16). При попытке передать в один SQL-запрос более 32 767 параметров происходило переполнение, и драйвер начинал писать нули за пределами выделенного блока памяти, вызывая краш приложения или порчу данных.
В обновлении функция SQLBindParameter жестко отклоняет запросы с номерами параметров выше 32 767 с возвратом кода SQLSTATE 07009. Если оперативно обновить драйвер на всех клиентских машинах не удается, временным обходом служит передача списков значений через единый параметр-массив = ANY(?).
Жизненный цикл схем
Пока сетевой стек закрывал бреши, в области автоматизации разработки схем данных произошел качественный сдвиг. Автор Гэвин Рой (Gavin M. Roy) представил первую публичную версию инструмента pglifecycle 2.0. Утилита более семи лет шлифовалась внутри инфраструктуры компании AWeber и теперь полностью переписана на Rust.
Идея pglifecycle — перенести философию «инфраструктура как код» на уровень СУБД. Структура базы хранится в Git в виде понятных YAML-файлов: отдельный файл на каждую таблицу, представление, функцию или роль. Утилита умеет экспортировать текущую базу в репозиторий, компилировать модель в стандартный архив pg_restore, сравнивать декларативную схему с живой базой данных и генерировать безопасный DDL для синхронизации. Деструктивные операции (вроде удаления колонок) по умолчанию блокируются, а фирменный GitHub Action позволяет проверять дрифт схемы прямо в pull request перед выкаткой.
Визуальное проектирование
В связку к декларативным миграциям подоспел и визуальный инструментарий: разработчик Джо Аббате (Joe Abbate) объявил о возрождении известного проекта Pyrseas под новым именем Perseid 0.1.0.
Утилиты dbtoyaml и yamltodb, опубликованные на платформе Codeberg, предназначены для реверс-инжиниринга и декларативного управления схемами современных версий PostgreSQL 17+. Первый релиз реализует полную поддержку схем, таблиц, типов колонок и ограничений целостности (constraints). Это легкая консольная альтернатива громоздким проприетарным CASE-пакетам, позволяющая автоматизировать версионирование моделей данных без ручного написания сотен строк SQL-миграций.
Сегодняшний срез наглядно напоминает о двух сторонах работы с базами данных. С одной стороны — строгая гигиена инфраструктуры: своевременный накат патчей на PgBouncer и драйверы ODBC спасает продакшен от взлома и повреждения памяти. С другой стороны — зрелость процессов: переход от хаотичных SQL-скриптов к декларативному версионированию схем через pglifecycle и Perseid превращает работу со структурой таблиц в предсказуемый и безопасный инженерный пайплайн.
