E.47. Выпуск 10.3

Дата выпуска: 2018-03-01

В этот выпуск вошли различные исправления, внесённые после версии 10.2. За информацией о нововведениях версии 10 обратитесь к Разделу E.50.

E.47.1. Миграция на версию 10.3

Если используется версия 10.X, выгрузка/восстановление базы не требуется.

Однако если в вашей СУБД не все пользователи взаимно доверяют друг другу либо если вы поддерживаете приложение или расширение, предназначенное для использования в произвольных ситуациях, настоятельно рекомендуется прочитать об изменениях в первой записи ниже и предпринять соответствующие действия для защиты вашей инсталляции или кода.

Также изменения, описанные во втором пункте списка ниже, могут приводить к сбоям функций, используемых в индексных выражениях или материализованных представлениях, во время автоматического анализа или при восстановлении выгруженных данных. Поэтому после обновления проверьте журнал сервера на предмет подобных проблем и исправьте затронутые функции.

Также, если вы обновляете сервер с более ранней версии, чем 10.2, см. Раздел E.48.

E.47.2. Изменения

  • Добавление в документацию информации о настройке серверов и приложений для защиты от атак с внедрением троянского кода через путь поиска (Ной Миш)

    Когда используется значение search_path, включающее схемы, доступные для записи злонамеренному пользователю, он может перехватывать управление над выполнением запросов и затем запускать произвольный SQL-код с правами атакуемого пользователя. Хотя есть возможность составлять запросы, защищённые от подобного перехвата, это требует кропотливой работы, и при этом очень легко что-то упустить. Поэтому мы рекомендуем использовать конфигурации, в которых пути поиска не могут включать недоверенные схемы. Соответствующая информация добавлена в Подраздел 5.8.6 (для пользователей и администраторов баз данных), Раздел 31.1 (для разработчиков приложений), Подраздел 35.15.6 (для разработчиков расширений) и CREATE FUNCTION (для разработчиков функций с характеристикой SECURITY DEFINER). (CVE-2018-1058)

  • Предотвращение использования небезопасных значений search_path в pg_dump и других клиентских программах (Ной Миш, Том Лейн)

    pg_dump, pg_upgrade, vacuumdb и другие приложения, предоставляемые PostgreSQL, были уязвимы для перехвата выполнения, описанного в предыдущем пункте; так как эти приложения обычно запускаются суперпользователями, они представляли собой привлекательные средства для атаки. Чтобы защитить их вне зависимости от того, защищена ли вся инсталляция в целом, они были изменены так, чтобы для них параметр search_path содержал только pg_catalog. Теперь это так же касается и рабочих процессов автоочистки.

    В случаях, когда этими программами неявно вызываются определённые пользователем функции — например, это могут быть пользовательские функции в выражениях индексов — более строгое значение search_path может приводить к ошибкам, которые потребуется исправить так, чтобы эти функции никак не зависели от пути поиска, с которым они выполняются. Это всегда рекомендовалось делать, но сейчас это необходимо для корректного поведения. (CVE-2018-1058)

  • Предотвращение попыток логической репликации передавать изменения в непубликуемых отношениях (Питер Эйзентраут)

    Публикация всех таблиц (с пометкой FOR ALL TABLES) могла некорректно передавать изменения в материализованных представлениях и таблицах information_schema, которые не должны попадать в поток изменений.

  • Исправление некорректного поведения перепроверок одновременных изменений со ссылками CTE, фигурирующими во внутренних планах (Том Лейн)

    Если ссылка на CTE (содержимое предложения WITH) использовалась в InitPlan или SubPlan, и запросу требовалось провести перепроверку из-за попытки изменения или блокировки одновременно изменяемой строки, могли быть получены неверные результаты.

  • Устранение сбоев планировщика при перекрывающихся предложениях соединения слиянием во внешнем соединении (Том Лейн)

    Эти дефекты приводили в особых случаях к ошибкам планировщика «left and right pathkeys do not match in mergejoin» (нарушено соответствие левых и правых ключей пути в соединении слиянием) или «outer pathkeys do not match mergeclauses» (внешние ключи пути не соответствуют предложениям слияния).

  • Исправление ошибки в pg_upgrade, когда не удавалось сохранить relfrozenxid для материализованных представлений (Том Лейн, Андрес Фройнд)

    Данное упущение могло приводить к разрушению данных в материализованных представлениях после обновления. Это могло проявляться в ошибках «could not access status of transaction» (не удалось получить состояние транзакции) или «found xmin from before relfrozenxid» (найден xmin перед relfrozenxid). Эта проблема была более вероятна в редко обновляемых материализованных представлениях или в представлениях, обновляемых только командой REFRESH MATERIALIZED VIEW CONCURRENTLY.

    Если такое разрушение имело место, его можно исправить, обновив материализованное представление (без указания CONCURRENTLY).

  • Исправление некорректного вывода pg_dump для некоторых граничных значений последовательностей (Алексей Баштанов)

  • Исправление неправильной обработки в pg_dump объектов STATISTICS (Том Лейн)

    Схема объекта расширенной статистики неправильно помечалась в оглавлении таблицы выгружаемых данных, что могло приводить к некорректным результатам при восстановлении отдельных схем. Также некорректно восстанавливалась информация о владельце. Кроме того, логика работы изменена так, чтобы объекты статистики выгружались/восстанавливались или нет как независимые объекты, без учёта того, производится ли выгрузка/восстановление таблицы, к которой они привязаны. Исходное определение не должно распространяться на планируемое будущее расширение статистики нескольких таблиц.

  • Исправление некорректной обработки имён функций PL/Python в стеках ошибки CONTEXT (Том Лейн)

    Ошибка, произошедшая во вложенном вызове функции PL/Python (то есть функции, вызванной через SPI-запрос из другой функции PL/Python), могла привести к тому, что в трассировке стека вместо ожидаемого результата имя внутренней функции фигурировало дважды. Также ошибка во вложенном блоке PL/Python DO могла привести к обращению по нулевому указателю на некоторых платформах.

  • Максимальное значение log_min_duration для contrib/auto_explain доведено до INT_MAX, что составляет около 24 суток вместо 35 минут (Том Лейн)

  • Для разнообразных переменных GUC добавлена пометка PGDLLIMPORT в целях облегчения переноса модулей расширений в Windows (Метин Дослу)

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy