PostgreSQL 13.2、12.6、11.11、10.16、9.6.21 和 9.5.25 已發布!

張貼於 2021-02-11,作者:PostgreSQL 全球開發團隊
PostgreSQL 專案 安全性

PostgreSQL 全球開發團隊已發布我們資料庫系統所有支援版本的更新,包括 13.2、12.6、11.11、10.16、9.6.21 和 9.5.25。此版本修補了兩個安全性漏洞,並修正了過去三個月回報的 80 多個錯誤。

此外,這是 PostgreSQL 9.5 的最終版本。如果您在生產環境中執行 PostgreSQL 9.5,我們建議您規劃升級。

如需完整的變更清單,請參閱發布說明

安全性問題

CVE-2021-3393:分割區約束違規錯誤會洩漏被拒絕欄位的值

受影響版本:11 - 13。

在分割區表上擁有 UPDATE 權限但缺少某些欄位 SELECT 權限的使用者,可能會從錯誤訊息中獲取被拒絕欄位的值。 這類似於 CVE-2014-8161,但利用條件較為罕見。

PostgreSQL 專案感謝 Heikki Linnakangas 回報此問題。

CVE-2021-20229:單欄位 SELECT 權限允許讀取所有欄位

受影響版本:13。

對單個欄位擁有 SELECT 權限的使用者可以建立一個特殊查詢,該查詢會傳回表的所有欄位。

此外,使用欄位層級權限的儲存檢視表將具有不完整的欄位使用點陣圖。 在依賴欄位層級權限來確保安全性的安裝中,建議對所有使用者定義的檢視表執行 CREATE OR REPLACE,以強制它們重新解析。

PostgreSQL 專案感謝 Sven Klemm 回報此問題。

錯誤修復和改進

此更新修復了過去幾個月中回報的 80 多個錯誤。 某些問題僅影響版本 13,但也可能適用於其他支援的版本。

其中一些修復包括

  • 修復 GiST 索引的問題,其中並行插入可能導致索引損壞,且條目放置在錯誤的頁面中。 您應該 REINDEX 任何受影響的 GiST 索引。
  • 修復 CREATE INDEX CONCURRENTLY 以確保並行準備事務中的列包含在索引中。 已啟用準備事務的安裝應 REINDEX 任何並行建立的索引。
  • 修復雜湊聚合溢出到磁碟時可能出現的不正確查詢結果。
  • 修復增量排序中的邊緣案例,該案例可能導致排序結果不正確或「在有界排序中檢索到太多元組」錯誤。
  • 避免通過擴充查詢協定(例如來自準備好的陳述式)執行執行交易回滾的 CALLDO 陳述式時發生崩潰。
  • 修復 PL/pgSQL 程序對另一個具有 OUT 參數並執行 COMMITROLLBACK 的程序使用 CALL 時發生的故障。
  • 刪除分割區表上 BEFORE UPDATE 觸發程序的錯誤,這些限制不再適用。
  • 修復多個具有聯結的查詢,這些查詢可能導致錯誤訊息,例如「relid N 沒有關聯條目」或「未能建立任何 N 向聯結」。
  • 嘗試並行排序時,請勿將 ORDER BY 運算式中的並行限制或設定傳回函數視為並行。
  • 修復 ALTER DEFAULT PRIVILEGES 以安全地處理重複的參數。
  • 修復多個在 wal_level 設定為 minimal 時的行為,包括在交易中重寫表時。
  • 修復多個 CREATE TABLE LIKE
  • 確保在提交交易時立即釋放已刪除關係(例如表)的已分配磁碟空間。
  • 修復 CLUSTER 的進度報告。
  • 修復 COPY FROM 中反斜線跳脫的多位元組字元處理。
  • 修復最近在 LISTEN/NOTIFY 佇列處理中引入的競爭條件。
  • 允許 jsonb 連接運算子 (||) 處理 JSON 資料類型的所有組合。
  • 修復 WAL 讀取邏輯,以便備用伺服器可以正確處理時間軸切換。 此問題可能會顯示為類似「請求的 WAL 段已被移除」的錯誤。
  • 修復多個圍繞邏輯解碼和複寫的 walsender 程序的洩漏問題。
  • 確保 krb_server_keyfile 的非空值始終覆蓋伺服器環境中 KRB5_KTNAME 的任何設定
  • 修復多個 GSS 加密支援。
  • 確保 \connect 命令允許在 connection_string 參數中使用密碼。
  • 修復 \help 命令的各種錯誤。
  • 修復多個 pg_dump
  • 確保 pg_rewind 在倒轉備用伺服器時考慮所有 WAL。
  • 修復 contrib/auto_explain 中的記憶體洩漏。
  • 確保在刪除這些連線所依賴的使用者對應或外部伺服器物件時,關閉所有 postgres_fdw 連線。
  • 修復 JIT 編譯以與 LLVM 11 和 LLVM 12 相容。

此更新還包含俄羅斯(伏爾加格勒時區)和南蘇丹的 DST 法律變更的 tzdata 版本 2021a,以及澳洲、巴哈馬、伯利茲、百慕達、迦納、以色列、肯亞、奈及利亞、巴勒斯坦、塞席爾和萬那杜的歷史更正。

值得注意的是,Australia/Currie 時區已更正到與 Australia/Hobart 相同。

如需完整的變更清單,請參閱發布說明

PostgreSQL 9.5 已終止支援 (EOL)

這是 PostgreSQL 9.5 的最終版本。 如果您在生產環境中執行 PostgreSQL 9.5,我們建議您規劃升級到較新、受支援的 PostgreSQL 版本。 請參閱我們的版本控制政策以取得更多資訊。

更新

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

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

有關更多詳細資訊,請參閱發布說明

注意:PostgreSQL 9.6 將於 2021 年 11 月 11 日停止接收修復。 請參閱我們的版本控制政策以取得更多資訊。

連結