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

CVE-2023-5868

PostgreSQL CVE-2023-5868: раскрытие памяти в агрегатах

Некоторые вызовы агрегатных функций с аргументами типа unknown могли раскрыть байты памяти сервера PostgreSQL. Такой тип часто возникает у строкового литерала без явного указания типа; исправление выпущено для веток 11–16.

Проверено 27 октября 2026PostgreSQL указывает CVSS 3.0: 4.3 (Medium), вектор AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N. Проект отмечает, что не подтвердил и не исключил возможность наличия существенных конфиденциальных данных в раскрытых байтах.

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

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

В чём риск

Некоторые вызовы агрегатных функций с аргументом unknown могли вернуть байты памяти сервера от конца значения до следующего нулевого байта. Типичный источник unknown — строковый литерал без явного типа. Нельзя утверждать, что раскрываемая область обязательно содержит секреты: PostgreSQL не подтвердил и не опроверг такую возможность.

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

Затронуты upstream-ветки PostgreSQL 11–16 до выпусков 11.22, 12.17, 13.13, 14.10, 15.5 и 16.1 соответственно. Сценарий связан с вызовами некоторых агрегатных функций, принимающих аргумент типа unknown; типичный источник — строковый литерал без явного типа.

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

Исправлено в PostgreSQL 11.22, 12.17, 13.13, 14.10, 15.5 и 16.1 (9 ноября 2023 года). Обновите до актуального поддерживаемого пакета или используйте сборку поставщика с подтверждённым backport.

Что сделать

  1. 1Проверьте фактические версии серверов и пакеты на всех экземплярах, включая реплики; сверяйте backport с бюллетенем поставщика.
  2. 2Обновите затронутую ветку до исправленного поддерживаемого выпуска: 11.22, 12.17, 13.13, 14.10, 15.5 или 16.1 и новее.
  3. 3До обновления ограничьте доступ к базе недоверенным ролям и пересмотрите доступность SQL-интерфейсов, принимающих запросы от пользователей. Это уменьшает поверхность доступа, но не устраняет дефект.
  4. 4После установки пакета проверьте версию на сервере и убедитесь, что обновлены первичный экземпляр и реплики.
  5. 5Если есть признаки необычных запросов или доступа к памяти через SQL, сохраните журналы подключений и проведите расследование по процедуре реагирования.

Порядок исправления CVE-2023-5868

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

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

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

Проверить версию подключённого сервера (shell)
psql -X -c 'SHOW server_version;'

Запустите с разрешённым подключением именно к проверяемому экземпляру. Команда только читает версию, а -X отключает пользовательский psqlrc. Для дистрибутивного пакета дополнительно проверьте advisory поставщика на backport; пароль не передавайте в аргументах команды.

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

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

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

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

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