CVE-2022-41862
PostgreSQL CVE-2022-41862: libpq раскрывала память при GSS
Изменённый сервер мог передать незавершённую строку при установлении Kerberos/GSS-шифрования и вызвать чтение неинициализированных байтов в libpq. Риск требует Kerberos credential cache и неотключённого gssencmode; обновите именно клиентскую библиотеку.
Кому нужно проверить
Командам, сопровождающим приложения на libpq и подключающимся к PostgreSQL с GSS/Kerberos encryption. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При установлении Kerberos transport encryption изменённый сервер мог отправить строку без завершающего нулевого байта. В определённых условиях libpq читала за пределами полученного буфера и включала неинициализированные байты в сообщение об ошибке. Раскрытие требует, чтобы вызывающее приложение делало такое сообщение доступным атакующему.
Затронутые версии
Официальный advisory PostgreSQL указывает затронутые ветки 12–15 до 12.14, 13.10, 14.7 и 15.2 соответственно. Условия: libpq-клиент имеет Kerberos credential cache и явно не отключил gssencmode; изменённый неаутентифицированный сервер может вызвать over-read при согласовании GSS transport encryption.
Исправленные версии
Исправлено в libpq из PostgreSQL 12.14, 13.10, 14.7 и 15.2 (9 февраля 2023 года). Обновите пакет клиентской библиотеки, используемый приложением; обновление только серверного кластера не гарантирует, что отдельно установленный или встроенный libpq-клиент исправлен.
Что сделать
- 1Определите все приложения, использующие libpq, включая контейнеры, агенты и библиотеки, встроенные в сторонние продукты; версия сервера не заменяет проверку клиента.
- 2Установите исправленный пакет PostgreSQL client/libpq не ниже 12.14, 13.10, 14.7 или 15.2 для соответствующей ветки либо сборку поставщика с подтверждённым backport.
- 3Если GSS encryption не требуется, временно задайте gssencmode=disable в поддерживаемой приложением конфигурации. Это ограничивает конкретный путь, но не заменяет обновление клиента.
- 4Проверьте, что приложение действительно загружает исправленную библиотеку после перезапуска; приложения могут поставлять или статически включать собственную копию libpq.
- 5Не делайте диагностические сообщения соединения доступными недоверенным пользователям. При подозрении на утечку сохраните журналы приложения и расследуйте, какие сообщения возвращались клиентам.
Проверка клиента libpq при CVE-2022-41862
Статичная последовательность проверки клиентских библиотек и настройки GSS.
- 1Составьте список приложений и мест установки libpq
- 2Определите, используются ли Kerberos credentials и GSS encryption
- 3Обновите клиентскую библиотеку или временно отключите ненужный GSS encryption
- 4Перезапустите приложение и проверьте фактически используемый пакет
- 5Ограничьте доступность диагностических ошибок и проверьте журналы
Примеры конфигурации и проверки
psql --versionКоманда ничего не подключает и выводит версию psql-клиента. Она не подтверждает версию или происхождение libpq, которую загружает другое приложение, если оно поставляет собственную либо статически связанную библиотеку; такие поставки проверяйте отдельно по пакету и сборке.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.