CVE-2023-5869
PostgreSQL CVE-2023-5869: переполнение при изменении массива
Недостаточные проверки переполнения при изменении некоторых SQL-массивов позволяли аутентифицированному пользователю PostgreSQL читать память сервера и записывать данные за пределами области памяти. Установите исправление на всех затронутых узлах.
Кому нужно проверить
Администраторам PostgreSQL 11–16, владельцам баз с удалёнными или общими учётными записями и командам эксплуатации серверов баз данных. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При изменении некоторых значений SQL-массивов отсутствие проверок переполнения позволяло аутентифицированному пользователю читать широкую область памяти сервера и записывать произвольные байты в память, что могло привести к выполнению кода. Это уязвимость ядра PostgreSQL; не считайте фильтрацию трафика веб-сайта исправлением.
Затронутые версии
Затронуты upstream-ветки 11–16 до исправленных минорных выпусков: 11.22, 12.17, 13.13, 14.10, 15.5 и 16.1 соответственно. Эксплуатация требует аутентифицированного доступа к базе и специально сформированного значения массива.
Исправленные версии
Исправлено в PostgreSQL 11.22, 12.17, 13.13, 14.10, 15.5 и 16.1 (9 ноября 2023 года). Установите актуальный поддерживаемый пакет и проверьте исправления поставщика, включая backport.
Что сделать
- 1Проверьте версию сервера на каждом узле, включая реплики и отдельные экземпляры; для пакетов дистрибутива сверьте исправление с его advisory.
- 2Ограничьте подключения к базе только необходимыми сетями и ролями. До обновления уберите ненужный доступ недоверенных пользователей; учитывайте влияние на приложения и резервные задания.
- 3Установите исправленный поддерживаемый выпуск: не ниже 11.22, 12.17, 13.13, 14.10, 15.5 или 16.1 для соответствующей upstream-ветки, либо подтверждённый backport.
- 4Проведите обновление по процедуре поставщика, затем проверьте версии всех узлов и штатную работу приложений.
- 5При подозрении на эксплуатацию сохраните журналы и расследуйте действия ролей с доступом к базе; не запускайте тестовые эксплойты в рабочей среде.
Проверка риска CVE-2023-5869
Последовательность проверки и обновления без эксплуатационных действий.
- 1Определите затронутые версии на всех узлах PostgreSQL
- 2Проверьте, кому разрешено подключение к каждой базе
- 3Ограничьте лишний доступ до установки исправления
- 4Обновите сервер до исправленного пакета поставщика
- 5Подтвердите версии и проверьте журналы доступа
Примеры конфигурации и проверки
psql -X -c 'SHOW server_version;'Требуется psql и разрешённое подключение к целевому экземпляру. Команда только читает server_version; -X исключает пользовательский psqlrc. Для пакетов ОС отдельно проверьте, содержит ли сборка backport исправления. Не указывайте пароль в командной строке.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.