CVE-2021-23214
PostgreSQL CVE-2021-23214: MITM-инъекция SQL при подключении
При настройке cert или trust с обязательным клиентским сертификатом сервер мог обработать незашифрованные байты посредника и принять произвольные SQL-запросы при установлении соединения. Уязвимость затрагивала ветки 9.6–14 до исправлений ноября 2021 года.
Кому нужно проверить
Администраторам PostgreSQL, использующим cert authentication либо trust с обязательным client certificate, и командам, отвечающим за сетевую конфигурацию баз. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При затронутой конфигурации посредник на сетевом пути мог внедрить произвольные SQL-запросы в момент первоначального установления соединения, несмотря на SSL-шифрование и проверку сертификата. Проблема затрагивает обработку данных сервером и отличается от клиентского дефекта CVE-2021-23222.
Затронутые версии
Затронуты upstream-ветки PostgreSQL 9.6–14 до исправлений 9.6.24, 10.19, 11.14, 12.9, 13.5 и 14.1. Условие: сервер использует аутентификацию trust с требованием clientcert либо аутентификацию cert; активный MITM может вмешаться при установлении соединения, даже если включены SSL-шифрование и проверка сертификата.
Исправленные версии
Исправлено в PostgreSQL 9.6.24, 10.19, 11.14, 12.9, 13.5 и 14.1 (11 ноября 2021 года). Обновите серверную сборку; для более новых поддерживаемых выпусков и пакетов ОС проверьте актуальный статус исправления у поставщика.
Что сделать
- 1Проверьте версию именно PostgreSQL-сервера и правила аутентификации для каждого входящего соединения, включая pg_hba.conf и управляемую конфигурацию поставщика.
- 2Если используется cert или trust с clientcert, считайте соединения уязвимыми до подтверждения исправления. Не полагайтесь на включённый SSL и проверку сертификата как на достаточное исправление.
- 3Ограничьте сетевой доступ к серверу доверенными сегментами, пока готовится обновление; временная сегментация не заменяет патч.
- 4Установите исправленный серверный выпуск 9.6.24, 10.19, 11.14, 12.9, 13.5 или 14.1 для соответствующей ветки либо подтверждённый backport поставщика.
- 5После обновления проверьте версию пакета и конфигурацию аутентификации. Рассмотрите переход на подходящую схему password authentication, например SCRAM, только после оценки совместимости клиентов и требований безопасности.
- 6При подозрении на эксплуатацию сохраните журналы и проверьте действия ролей, подключения и изменения данных за период возможного инцидента.
Проверка серверной конфигурации CVE-2021-23214
Статичная последовательность проверки конфигурации и обновления; не является тестом на проникновение.
- 1Проверьте версию сервера и правила входящей аутентификации
- 2Выявите cert и trust с обязательным клиентским сертификатом
- 3Ограничьте сетевой доступ до установки исправления
- 4Обновите сервер до исправленной сборки
- 5Перепроверьте правила и расследуйте подозрительные подключения
Примеры конфигурации и проверки
psql -X -c 'SHOW server_version;'Нужны psql и разрешённое подключение к целевому серверу. Команда только читает версию и не проверяет правила pg_hba.conf, TLS или наличие backport. Не подключайтесь по недоверенной сети только ради этой проверки и не помещайте пароль в команду.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.