PostgreSQL 11.1、10.6、9.6.11、9.5.15、9.4.20 和 9.3.25 版本已發布!

張貼於 2018-11-08,作者:PostgreSQL 全球開發團隊
PostgreSQL 專案

PostgreSQL 全球開發團隊已發布我們資料庫系統所有受支援版本的更新,包括 11.1、10.6、9.6.11、9.5.15、9.4.20 和 9.3.25。此版本修正了一個安全性問題,以及過去三個月回報的錯誤。

使用受影響 PostgreSQL 版本的所有使用者都應盡快更新。 如果您在安裝中使用 pg_stat_statements,請參閱下面的「更新」說明,了解可能需要的更新後步驟。

此更新也是 PostgreSQL 9.3 的最終版本,該版本現在已終止支援,並且不再收到任何錯誤或安全性修正。 如果您的環境仍在使用 PostgreSQL 9.3,請盡快制定計劃以更新到社群支援的版本。 請參閱我們的版本控制政策以獲取更多資訊。

安全性問題

此版本已修補一個安全性漏洞

  • CVE-2018-16850:透過 CREATE TRIGGER ... REFERENCINGpg_upgradepg_dump 中存在 SQL 注入。

受影響版本:10、11

使用精心設計的觸發程序定義,當超級使用者在資料庫上執行 pg_upgrade 或在 pg_dump 轉儲/還原週期期間,攻擊者可以使用超級使用者權限執行任意 SQL 語句。 此攻擊需要在某些非暫存綱要上具有 CREATE 權限或在表上具有 TRIGGER 權限。 這在預設 PostgreSQL 配置中是可利用的,其中所有使用者在 public 綱要上都具有 CREATE 權限。

錯誤修正和改進

此更新還修正了過去幾個月中回報的許多錯誤。 其中一些問題僅影響版本 11,但許多問題影響所有受支援的版本。

這些版本包括以下修正:

  • 確保自動建立的子索引與父分割索引位於相同的表格空間中
  • 修正了觸發程序的多個崩潰問題
  • 修正了將 ON COMMIT DELETE ROWS 應用於分割的暫存表格的問題
  • 修正了在使用並行雜湊連接的 LEFT JOIN 時如何處理 NULL
  • 修正了在 CALL 語句中使用具名或預設參數的幾個問題
  • 修正了具有 ORDER BY 欄位的嚴格聚合函數(即,無法接受 NULL 輸入的聚合函數),該欄位強制執行嚴格性檢查
  • 修正了 CASE 語句中將表達式強制轉換為陣列類型
  • 停用了用於更新表達式索引的優化,以防止崩潰
  • 修正了在使用 SP-GiST 索引的特定情況下發生的記憶體洩漏
  • 修正了 pg_verify_checksums 錯誤地報告不應具有總和檢查碼的檔案
  • 防止 PostgreSQL 伺服器在 wal_level 設定為無法支援現有複寫槽的值時啟動
  • 確保伺服器在等待客戶端輸入之前處理已接收的 NOTIFY 和 SIGTERM 中斷
  • 允許 PL/Ruby 與較新版本的 PostgreSQL 一起使用
  • 修正了 Windows 上對 U+FFFF 以上的 Unicode 字元的字元類別檢查,這會影響全文搜尋以及 contrib/ltreecontrib/pg_trgm
  • 修正了 psql 在下一個命令之前不會報告收到來自 NOTIFY 呼叫的消息的情況
  • 修正了 macOS 10.14 (Mojave) 上的建置問題
  • Windows 平台的幾個建置修正

此更新還包含 tzdata 版本 2018g,用於智利、斐濟、摩洛哥和俄羅斯(伏爾加格勒)的 DST 法規變更,以及中國、夏威夷、日本、澳門和北韓的歷史修正。

PostgreSQL 9.3 已終止支援 (EOL)

PostgreSQL 9.3 現在已終止支援,並且不再收到任何錯誤或安全性修正。 我們敦促使用者盡快開始計劃升級到更高版本的 PostgreSQL。 請參閱我們的版本控制政策以獲取更多資訊。

更新

所有 PostgreSQL 更新版本都是累加的。 與其他次要版本一樣,使用者不需要轉儲和重新載入其資料庫或使用 pg_upgrade 才能應用此更新版本; 您可以簡單地關閉 PostgreSQL 並更新其二進位檔。

如果您的系統使用 pg_stat_statements 並且您正在執行 PostgreSQL 10 或 PostgreSQL 11 版本,我們建議您在升級後執行以下命令

ALTER EXTENSION pg_stat_statements UPDATE;

跳過一個或多個更新版本的使用者可能需要執行額外的更新後步驟; 請參閱早期版本的發布說明以了解詳細資訊。

連結