Оновлення 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 і не відновлювати вміст з резервної копії. Виконання 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».

Джерело: opennet.ru

Додати коментар або відгук