PostgreSQL 9.4.2、9.3.7、9.2.11、9.1.16 和 9.0.20 已發布!

發佈於 2015-05-22,作者:PostgreSQL Global Development Group

PostgreSQL Global Development Group 已發布一個更新,其中包含對所有支援的 PostgreSQL 資料庫系統版本的多個功能和安全性修復,其中包括次要版本 9.4.2、9.3.7、9.2.11、9.1.16 和 9.0.20。此更新包含針對 PostgreSQL 9.3 和 9.4 中潛在資料損毀問題的關鍵修復;這些版本的使用者應盡快更新其伺服器。

在套用此更新之前,請參閱 關於某些使用者可能遇到的問題的常見問題解答

資料損毀修復

對於 PostgreSQL 9.3 或 9.4 版的使用者,此版本修復了一個問題,即資料庫將無法防止「multixact wraparound」,導致資料損毀或遺失。在具有多個外鍵的資料庫中,具有高事務率(每小時 100 萬次或更多)的使用者尤其容易受到影響。我們強烈建議所有 9.4 和 9.3 的使用者在接下來的幾天內更新他們的安裝。

9.2 及更早版本的使用者不受此問題影響。

安全性修復

此更新修復了過去幾個月在 PostgreSQL 中報告的三個安全性漏洞。這些問題都不被認為特別緊急。但是,使用者應檢查它們,以防他們的安裝易受攻擊

  • CVE-2015-3165 身份驗證超時後出現雙重「free」。
  • CVE-2015-3166 來自標準程式庫的意外錯誤。
  • CVE-2015-3167 pgcrypto 對於使用不正確金鑰進行解密具有多個錯誤訊息。

此外,我們建議所有使用 Kerberos、GSSAPI 或 SSPI 身份驗證的使用者在 pg_hba.conf 中將 include_realm 設定為 1,這將成為未來版本的預設值。

有關這些問題以及較舊的已修補問題的更多信息,請訪問 PostgreSQL 安全性頁面。

其他修復和改進

一個新的、非預設版本的 citext 擴充功能修復了其先前未記錄的 regexp_matches() 函數,使其與這些函數的普通文字版本對齊。修復後的版本具有與舊版本不同的傳回類型,因此 CIText 的使用者應在執行 "ALTER EXTENSION citext UPDATE" 更新函數之前測試他們的應用程式。

除了上述內容外,在此累計更新版本中還修復了 50 多個報告的問題。 大多數被命名的問題會影響所有支援的版本。 這些修復包括

  • 將無限日期和時間戳在轉換為 json 時呈現為 infinity
  • 修復 json/jsonb 的 populate_record() 和 to_record()
  • 修復遞延排除約束的錯誤檢查
  • 改進星形模式樣式查詢的規劃
  • 修復規劃聯接的三個問題
  • 確保使用安全性屏障視圖進行正確鎖定
  • 修復 max_prepared_transactions 太小時啟動時的死鎖
  • 在崩潰後遞迴 fsync() 資料目錄
  • 修復 autovacuum 啟動器可能無法關閉的問題
  • 處理 LockBufferForCleanup() 中意外的訊號
  • 修復 COPY IN 到具有檢查約束的表時的崩潰
  • 避免等待唯讀事務的同步複製
  • 修復雜湊索引的兩個問題
  • 防止 GIN 索引真空中的記憶體洩漏
  • 修復背景工作程式的兩個問題
  • 對邏輯解碼複製進行多項修復
  • 修復 pg_dump 和 pg_upgrade 的幾個小問題

此版本包含 tzdata 版本 2015d 的更新,其中包含對埃及、蒙古和巴勒斯坦的更新,以及加拿大和智利的歷史變更。

9.0 EOL 即將到來

9.0 版將於 2015 年 9 月終止生命週期 (End-Of-Life)。這表示此更新很可能是該版本的倒數第二個更新。 PostgreSQL 9.0 的使用者應開始計劃在那之前升級到更新的版本。 有關 EOL 日期的更多資訊,請參閱我們的版本發布政策

更新

與其他次要版本一樣,使用者不需要轉儲並重新載入他們的資料庫或使用 pg_upgrade 才能應用此更新版本;您可以簡單地關閉 PostgreSQL 並更新其二進制檔案。跳過多次更新版本的使用者可能需要執行額外的更新後步驟;請參閱發佈說明以了解詳細資訊。

連結