Обновление PostgreSQL с устранением уязвимости. Выпуск pg_ivm 1.0

Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL: 14.3, 13.7, 12.11, 11.16 и 10.22. Ветка 10.x приближается к окончанию срока поддержки (обновления будут формироваться до ноября 2022 года). Выпуск обновлений для ветки 11.x продлится до ноября 2023 года, 12.x — до ноября 2024 года, 13.x — до ноября 2025 года, 14.x — до ноября 2026 года.

В новых версиях предложено более 50 исправлений и устранена уязвимость CVE-2022–1552, связанная с возможностью обхода изоляции выполнения привилегированных операций Autovacuum, REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW, CLUSTER и pg_amcheck. Атакующий, имеющий полномочия создания не временных объектов в любой схеме хранения, может добиться выполнения произвольных SQL-функций с правами суперпользователя во время выполнения привилегированным пользователем вышеотмеченных операций, затрагивающих объект атакующего. В том числе эксплуатация уязвимости может произойти при автоматической чистке базы при выполнении обработчика autovacuum.

При невозможности выполнить обновление в качестве обходного пути блокирования проблемы можно отключить autovacuum и не выполнять привилегированным пользователем операции REINDEX, CREATE INDEX, REFRESH MATERIALIZED VIEW и CLUSTER, а также не запускать утилиту pg_amcheck и не восстанавливать содержимое из резервной копии, созданной утилитой pg_dump. Выполнение VACUUM признано безопасным, как и применение любых операции команд, если обрабатываемые объекты принадлежат пользователям, заслуживающим доверия.

Из других изменений в новых выпусках можно отметить обновление кода JIT для работы с LLVM 14, разрешение использования шаблонов database.schema.table в утилитах psql, pg_dump и pg_amcheck, исправление проблем, приводящих к повреждению индексов GiST над столбцами ltree, неверному округлению значений в формате epoch, извлечённых из данных с типом interval, неверной работы планировщика при использовании асинхронных удалённых запросов, неверной сортировке строк таблицы при использовании выражения CLUSTER над индексами с ключами на базе выражений, потере данных при аварийном завершения сразу после построения отсортированного индекса GiST, взаимной блокировке при удалении секционированного индекса, состоянию гонки между операцией DROP TABLESPACE и фиксацией состояния (checkpoint).

Дополнительно можно отметить выпуск расширения pg_ivm 1.0 с реализацией поддержки IVM (Incremental View Maintenance) для PostgreSQL 14. IVM предлагает альтернативный способ обновления материализованных представлений, более эффективный в случае, если изменения затрагивают небольшую часть представления. IVM позволяет мгновенно обновлять материализованные представления, применяя к ним только инкрементальные изменения, без повторного вычисления представления, производимого при использовании операции «REFRESH MATERIALIZED VIEW».



Источник: http://www.opennet.ru/opennews/art.shtml? num=57180

© OpenNet