Все уязвимости

CVE-2023-2454

PostgreSQL CVE-2023-2454: CREATE SCHEMA обходил search_path

Обработка schema_element в CREATE SCHEMA могла нейтрализовать защитное изменение search_path и позволить пользователю с правом CREATE в базе выполнить код с привилегиями bootstrap superuser. Исправление включено в ветки 11–15.

Проверено 27 октября 2026PostgreSQL указывает CVSS 3.0: 7.2 (High), вектор AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H. Высокие привилегии относятся к предварительному условию эксплуатации.

Кому нужно проверить

Администраторам PostgreSQL 11–15 и владельцам баз, которые выдают пользователям или приложениям право CREATE на уровне базы данных. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.

В чём риск

Внутри CREATE SCHEMA объекты из текущего search_path и новой схемы могли оставаться видимыми вызываемой функции или скрипту, несмотря на попытку задать безопасный search_path. Пользователь с правом создавать схему мог при выполнении условий перехватить привилегии SECURITY DEFINER-функции или скрипта расширения, вплоть до выполнения кода с правами bootstrap superuser.

Затронутые версии

Затронуты PostgreSQL 11–15 до выпусков 11.20, 12.15, 13.11, 14.8 и 15.3. Для эксплуатации требуется право CREATE на уровне базы; владельцы базы обычно имеют его по умолчанию, а явная выдача может расширять круг таких пользователей.

Исправленные версии

Исправлено в PostgreSQL 11.20, 12.15, 13.11, 14.8 и 15.3 (11 мая 2023 года). Установите актуальный поддерживаемый выпуск либо пакет поставщика, в котором backport подтверждён его advisory.

Что сделать

  1. 1Проверьте серверную версию и пакет на всех экземплярах. Для управляемых сервисов и ОС сверяйте статус исправления с поставщиком.
  2. 2Проведите ревизию ролей с правом CREATE на уровне базы; снимайте лишние привилегии только после проверки влияния на миграции и приложение.
  3. 3До обновления ограничьте CREATE для недоверенных пользователей и приложений. Это уменьшает число потенциально затронутых ролей, но не исправляет поведение сервера.
  4. 4Установите PostgreSQL не ниже 11.20, 12.15, 13.11 или 15.3 в соответствующей ветке либо подтверждённую исправленную сборку поставщика.
  5. 5После обновления перепроверьте доступ к CREATE и изучите журналы на предмет неожиданных изменений схем и функций с повышенными привилегиями.

Снижение риска CVE-2023-2454

Статичная последовательность ревизии прав и установки исправления.

  1. 1Проверьте версию сервера и статус пакета у поставщика
  2. 2Найдите роли с правом CREATE на уровне базы
  3. 3Ограничьте ненужное право CREATE до обновления
  4. 4Установите исправленный выпуск PostgreSQL
  5. 5Перепроверьте привилегии и журналы изменений схем

Примеры конфигурации и проверки

Проверить версию сервера PostgreSQL (shell)
psql -X -c 'SHOW server_version;'

Выполните только при наличии разрешённого подключения к целевой базе. Команда только читает версию; -X исключает пользовательский psqlrc. Она не проверяет права CREATE и не определяет backport пакета. Пароль не указывайте в аргументах команды.

Как не подпустить ботов к сайту

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

Первоисточники

Снизьте шанс атаки до того, как бот дойдёт до сайта

Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.