PostgreSQL закрыл 11 CVE: вышли версии 18.4, 17.10, 16.14, 15.18 и 14.23

14 мая PostgreSQL Global Development Group выпустила плановое обновление всех поддерживаемых веток. Закрыты 11 уязвимостей, четыре из них с CVSS 8.8, и исправлено более 60 багов. Затронуты не только серверы, но и клиенты на libpq.

DB
DBG · по материалам PostgreSQL News
0

14 мая PostgreSQL Global Development Group выпустила обновления для всех поддерживаемых веток — 18.4, 17.10, 16.14, 15.18 и 14.23. В релизе закрыты 11 CVE и исправлено более 60 багов, накопившихся за последние месяцы.

Четыре уязвимости получили оценку CVSS 8.8 — это верхняя планка для данного релиза:

  • CVE-2026-6473 — переполнение целого приводит к тому, что сервер недорезервирует память, а дальше пишет за границы выделенного буфера;
  • CVE-2026-6475 — следование симлинкам в pg_basebackup и pg_rewind позволяет перезаписывать произвольные файлы;
  • CVE-2026-6477 — функции lo_* в libpq позволяют вредоносному серверу затереть стековую память клиента;
  • CVE-2026-6637 — переполнение стекового буфера и SQL-инъекция в contrib-модуле refint.

Остальные семь тоже неприятные, хотя и полегче: CVE-2026-6472 (CVSS 5.4) — отсутствие проверки прав в CREATE TYPE, из-за чего создатель объекта может перехватывать чужие запросы через search_path и выполнять свои функции; CVE-2026-6479 (7.5) — неконтролируемая рекурсия при инициализации SSL/GSS и отказ в обслуживании; CVE-2026-6476 (7.2) — SQL-инъекция в pg_createsubscriber через имя подписки (только 17 и 18); CVE-2026-6478 (6.5) — тайминговый канал при сравнении MD5-паролей, по которому утекают учётные данные; CVE-2026-6638 (3.7) — SQL-инъекция в REFRESH PUBLICATION через имя таблицы; плюс CVE-2026-6474 (4.3) с раскрытием памяти через timeofday() и CVE-2026-6575 (4.3) с чтением за границей буфера в pg_restore_attribute_stats(). Заодно обновили данные таймзон до tzdata 2026b.

Из багфиксов, которые могут спасти вам данные: исправлены некорректные результаты при недетерминированных collation поверх уникальных индексов, потеря deferrable у триггеров внешних ключей, ошибки в partition pruning и в синхронизации слотов логической репликации.

Что делать практикующему разработчику. Обновление минорное: дампить и перезаливать базу или гонять pg_upgrade не нужно — останавливаете сервер, меняете бинарники, стартуете обратно. Но три вещи легко упустить. Первое: обновить сервер недостаточно. CVE-2026-6477 — это дыра в клиентской libpq, эксплуатируемая скомпрометированным или подставным сервером. Если ваши приложения ходят в чужие/managed-базы (или у вас есть клиенты на psycopg, драйверы на libpq, psql на рабочих машинах и в CI-образах) — обновляйте и клиентскую библиотеку тоже. Второе: проверьте, не подключён ли у вас contrib-модуль refintSELECT * FROM pg_extension;. Это архаика из девяностых, которая почти никому не нужна, а держит CVSS 8.8; если он есть и не используется — просто дропните. Третье: тайминговая атака на MD5-пароли — хороший повод наконец посмотреть в pg_hba.conf и password_encryption и добить переезд на scram-sha-256. И держите в голове дату: PostgreSQL 14 уходит в EOL 12 ноября 2026. Если вы всё ещё на 14 — это последний год, когда можно спланировать мажорный апгрейд спокойно, а не в аварийном режиме.

Комментарии