VMTech
Обсудить проект

PostgreSQL устранил уязвимость PostGREShell в логическом декодировании

PostgreSQL устранил уязвимость PostGREShell в логическом декодировании

PostgreSQL выпустил обновления для CVE-2026-6471 с оценкой CVSS 7,2: учётная запись с атрибутом REPLICATION могла выполнить произвольный код от имени пользователя операционной системы, под которым запущен сервер базы данных. Исправление вошло в PostgreSQL 18.6, 17.11, 16.15, 15.19 и 14.24.

Ошибка существовала с момента появления логического декодирования в PostgreSQL 9.4 в 2014 году. Для эксплуатации требовались атрибут REPLICATION и настройка сервера wal_level = logical. Такие права нередко есть у средств резервного копирования, репликации, конвейеров CDC и систем мониторинга.

Как работала уязвимость

При создании слота репликации имя выходного плагина из команды CREATE_REPLICATION_SLOT передавалось загрузчику библиотеки. По данным Cyera Research, этот путь обходил действующее ограничение, применяемое к загрузке библиотек непривилегированными пользователями.

Парсер протокола репликации принимал в имени плагина символы пути и последовательности ../, поэтому до загрузчика мог дойти указанный путь к библиотеке. Загруженный код исполнялся внутри серверного процесса PostgreSQL с правами системного пользователя postgres.

Исследователи Cyera Research назвали проблему PostGREShell. В их тесте плагин изменял каталог ролей, повышая репликационную учётную запись до суперпользователя PostgreSQL, а также создавал механизмы сохранения доступа после перезапуска сервера.

Что меняется после обновления

Разработчики добавили параметр output_plugin_libraries, задающий перечень библиотек, которые разрешено использовать как выходные плагины логического декодирования. По умолчанию в него включены только pgoutput и test_decoding.

Если инсталляция использует сторонний плагин, например wal2json или decoderbufs, после обновления логическое декодирование будет отклонено, пока администратор не добавит библиотеку в этот список. Затем достаточно перечитать конфигурацию через pg_ctl reload или SELECT pg_reload_conf(); перезапуск сервера не требуется.

Действия администраторов

Перед обновлением PostgreSQL рекомендует выполнить запрос SELECT DISTINCT plugin FROM pg_replication_slots WHERE plugin IS NOT NULL;, чтобы определить уже применявшиеся плагины. После установки пакета нужно внести в output_plugin_libraries все используемые нестандартные библиотеки и перезагрузить конфигурацию.

  • Обновить поддерживаемую ветку до 18.6, 17.11, 16.15, 15.19 или 14.24 либо до эквивалентного пакета дистрибутива.
  • Проверить, каким учётным записям действительно необходим атрибут REPLICATION.
  • Ограничить записи репликации в pg_hba.conf известными адресами.
  • При невозможности немедленного обновления закрыть исходящие SMB на порту 445 и NFS на порту 2049, а также отключить autofs, если он не нужен.

Пакеты с исправлением доступны, в частности, для Amazon RDS, Debian, SUSE и Ubuntu. Для бизнеса ключевой риск состоит в том, что привычная сервисная роль репликации при определённой конфигурации могла стать путём к выполнению кода на сервере; обновление следует совместить с инвентаризацией плагинов и прав таких учётных записей.

#postgresql#databasesecurity#vulnerability#cybersecurity
Открытая аналитика
На сайте 2 просмотров
мин чтения 3 04.09.2026
Instagram

PostgreSQL устранил уязвимость PostGREShell в логическом декодировании

Открыть публикацию в Instagram ↗