LINUX.ORG.RU

PostgreSQL 18.6, 17.11, 16.15, 15.19, 14.24 и PostgreSQL 19 Beta 3

 ,

PostgreSQL 18.6, 17.11, 16.15, 15.19, 14.24 и PostgreSQL 19 Beta 3

0

3

13 августа PostgreSQL Global Development Group выпустила обновления всех поддерживаемых веток PostgreSQL — 18.6, 17.11, 16.15, 15.19 и 14.24. Одновременно опубликована третья бета-версия будущего PostgreSQL 19. В совокупности обновление закрывает 28 уязвимостей и исправляет более 110 ошибок, обнаруженных за последние несколько месяцев.

Ветка PostgreSQL 18 сразу перешла с версии 18.4 на 18.6: PostgreSQL 18.5 не распространялся, поскольку после подготовки выпуска разработчики обнаружили регрессию. Обновление в пределах одной основной ветки не требует pg_upgrade или выгрузки и восстановления базы — достаточно остановить сервер, обновить бинарные файлы и запустить его снова. Для некоторых конфигураций после обновления, однако, потребуются дополнительные действия.

Среди основных исправлений:

  • Закрыты 28 уязвимостей, причём несколько получили оценку CVSS 8.8 и позволяют при определённых условиях добиться выполнения произвольного кода. В частности, исправлены переполнения буфера в to_char(), plperl и обработке регулярных выражений, ошибки смешения типов в работе с курсорами и внутренними типами, а также SQL-инъекция при декомпиляции выражений EXTRACT(). Полный перечень CVE опубликован в официальном анонсе.

  • Для логического декодирования введён новый параметр output_plugin_libraries, ограничивающий список библиотек, которые разрешено загружать в качестве output-плагинов. Ранее пользователь с правами репликации мог выбрать произвольную загружаемую библиотеку, что стало причиной CVE-2026-6471. По умолчанию разрешены только входящие в PostgreSQL pgoutput и test_decoding; сторонние плагины после обновления потребуется явно добавить в конфигурацию.

  • Исправлена серьёзная проблема в pgcrypto: при использовании некоторых неподдерживаемых OpenSSL алгоритмов модуль мог не заметить ошибку шифрования и фактически сохранить данные в легко восстанавливаемом виде. Для извлечения уже затронутых данных добавлена опция ignore-cipher-failure, после чего разработчики рекомендуют повторно зашифровать их современным алгоритмом. Уязвимость получила идентификатор CVE-2026-14663.

  • В psql исправлена обработка сценариев с COPY ... FROM STDIN. Если команда COPY завершалась ошибкой ещё до начала передачи данных, последующие строки могли быть интерпретированы как команды psql или SQL. Ошибка зарегистрирована как CVE-2026-6464 и могла создавать условия для SQL-инъекции.

  • Исправлены параллельные сборки GIN-индексов, которые могли записать в pg_class.reltuples некорректное значение, включая Infinity или NaN. В результате autovacuum и autoanalyze могли перестать обслуживать соответствующую таблицу. Разработчики рекомендуют после обновления проверить reltuples у таблиц с GIN-индексами и выполнить ANALYZE, если значение оказалось неверным.

  • Исправлены ошибки расширения btree_gist, включая неправильную обработку NaN в float4/float8 и сортировку bit/bit varying при построении индекса. Индексы btree_gist с такими типами после установки обновления может потребоваться перестроить.

  • В ltree устранено целочисленное переполнение при сравнении значений с очень большим числом меток. Значения примерно с более чем 14 653 метками могли сравниваться неверно, что в отдельных случаях приводило к фактическому повреждению B-tree-индекса. Для затронутых индексов рекомендуется REINDEX.

  • Исправлена partition pruning для таблиц с секционированием RANGE: планировщик мог ошибочно исключить DEFAULT-секцию и в результате вернуть не все строки. Также устранены проблемы с секционированными таблицами, содержащими внешние таблицы, и несколько ошибок в RETURNING OLD/NEW.

  • Исправлено несколько ошибок планировщика, способных приводить к неверным результатам запросов. Они затрагивали, в частности, выражения value IN (array) с потенциально пустым массивом и оконные функции COUNT() с EXCLUDE или без ORDER BY. Улучшена производительность hash join с несколькими ключами соединения и большим количеством NULL.

  • Устранена гонка при обнаружении конфликтов на уровне изоляции SERIALIZABLE. При работе с изначально пустым B-tree-индексом конфликт иногда оставался незамеченным, позволяя двум конфликтующим транзакциям завершиться успешно и тем самым нарушая гарантии сериализуемости.

  • Исправлено журналирование WAL при очистке битов в visibility map — ошибка могла приводить к некорректным инкрементальным резервным копиям и в некоторых случаях мешать восстановлению после частично записанной страницы. Также исправлено логическое декодирование пустых подготовленных транзакций.

  • В libpq, pg_createsubscriber, pg_restore, REINDEX CONCURRENTLY, jsonpath, GiST/SP-GiST и ряде других компонентов устранены ошибки и зависания. Кроме того, PostgreSQL теперь можно собирать с OpenSSL 4.

  • В комплект включена база часовых поясов tzdata 2026c, отражающая, среди прочего, переход канадской Альберты на постоянный UTC−06 с ноября 2026 года и Марокко на постоянный UTC+00 с 20 сентября 2026 года.

Отдельно разработчики предупредили об ошибке, затрагивающей PostgreSQL 14, 15 и 16: исправлена взаимная блокировка при воспроизведении WAL, созданного сервером с более старой минорной версией. Регрессия появилась в предыдущей серии обновлений и могла привести к зависанию standby-сервера, следующего за primary с более старым обновлением PostgreSQL.

PostgreSQL 19 Beta 3

Одновременно вышла PostgreSQL 19 Beta 3. Это тестовая версия будущей основной ветки, которую разработчики пока не рекомендуют использовать в производственных системах. Обновление с предыдущих beta-версий PostgreSQL 19 выполняется аналогично переходу между основными версиями — с помощью pg_upgrade либо pg_dump/pg_restore.

Основные изменения относительно Beta 2:

  • отменено ранее добавленное GROUP BY ALL;
  • исправлен ряд ошибок новой поддержки темпоральных таблиц с синтаксисом FOR PORTION OF;
  • исправлена новая функция синхронизации последовательностей при логической репликации, включая гонку при REFRESH SEQUENCES;
  • устранена ошибка unexpected logical decoding status change, возникавшая при одновременном включении logical decoding;
  • исправлена обработка изменения владельца подписок;
  • устранено получение неверных результатов в postgres_fdw при передаче на удалённый сервер сравнений массивов вида field = ANY($1) с неявным преобразованием типа;
  • исправлено падение при проверке внешнего ключа, связанного с допускающим NULL ограничением UNIQUE;
  • исправлен разбор числовых литералов с символами подчёркивания в pg_plan_advice;
  • восстановлена пропущенная секция FORMAT при обратном преобразовании JSON_ARRAY(query) в SQL.

Полный перечень возможностей будущей PostgreSQL 19 и изменений в тестовой ветке доступен в release notes PostgreSQL 19. Финальный выпуск PostgreSQL 19 запланирован на сентябрь 2026 года.

PostgreSQL распространяется под свободной лицензией PostgreSQL License. Поддержка PostgreSQL 14 подходит к концу: последние исправления для этой ветки планируется выпустить 12 ноября 2026 года, поэтому разработчики рекомендуют пользователям PostgreSQL 14 заранее запланировать переход на более новую поддерживаемую версию.

>>> Источник

★★★★★

Проверено: cetjs2 ()
Последнее исправление: unclestephen (всего исправлений: 1)

Ох…

Единоразовое предложение, атракцион, так сказать. Предлагаю:

Кто напишет нормальную новость об этом же, которую можно читать, до 10:00 (МСК) 15-го августа 2026 года — которая лучше, чем эта и лучше, чем остальные участвующие, получит +20 к скору (вместо обычных +3 за подтверждение), а также общее народное признание. Если ничего лучше этой новости не будет, будет (в то же время) подтверждена эта.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 4)

Ура! Ждём ебилдов!

keeper_b ★★★★★
()
Ответ на: комментарий от unclestephen

А вам не обидно, что сэр CrX нанес оскорбление вашей чести сказав:

Кто напишет нормальную новость об этом же, которую можно читать

То есть он будет оспаривать модерацию другого модератора,cetjs2, это интересный баттл получится) Как по мне, статья нормальная, даже если бы просто скопом написали, всё равно читал. Линуксоиды ведь же.

REDDERa
()
Последнее исправление: REDDERa (всего исправлений: 1)
Ответ на: комментарий от REDDERa

другого модератора,cetjs2

Он не модератор, он стал персональным корректором ТС. Так как выяснилось, что многие модераторы не читают новости ТС, берегут здоровье.
@cetjs2, он тебе платит, что ли?

dataman ★★★★★
()
Ответ на: комментарий от REDDERa

Не понял, причём тут оспаривание и баттл. Я оказался не у компа в 10 утра (подошёл где-то к 10:40), cetjs2 (он, кстати, корректор, а не модератор, но это не принципиально в данном контексте) оказался и подтвердил, за что ему спасибо. Всё как планировалось. Жаль, конечно, что никто варианта получше не написал, но за неимением лучшего, пусть будет такой.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от dataman

хочу просто наполнить ЛОР новостями… с качеством стало заметно лучше, реальных косяков меньше, а на стиль пофиг, ибо не из чего выбирать, я и твои подтверждаю…

cetjs2 ★★★★★
()
Ответ на: комментарий от cetjs2

не из чего выбирать

Как же так выходит? Может мотивацию поднять посетителям, больше скора предлагать?

Saakx
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.