PostgreSQL 16.2、15.6、14.11、13.14 和 12.18 版本已發布!

發佈於 2024-02-08,由 PostgreSQL Global Development Group
PostgreSQL 專案 安全性

PostgreSQL Global Development Group 已經發布了所有支援的 PostgreSQL 版本的更新,包括 16.2、15.6、14.11、13.14 和 12.18。此版本修復了一個安全性漏洞以及過去幾個月報告的 65 多個錯誤。

如果您使用 GIN 索引,您可能需要在更新到此版本後重新建立索引。請參閱發布說明以獲取更多資訊。

有關完整的變更列表,請查看發布說明

安全性問題

CVE-2024-0985:PostgreSQL 非擁有者 REFRESH MATERIALIZED VIEW CONCURRENTLY 執行任意 SQL

CVSS v3 基礎評分:8.0

受支援的易受攻擊版本:12 - 16。

並行重新整理命令的一個步驟在安全性較弱的限制下執行。如果實體化檢視的擁有者可以說服超級使用者或其他高權限使用者對該檢視執行並行重新整理,則該檢視的擁有者可以控制使用執行 REFRESH 的使用者的權限執行的程式碼。此漏洞的修復使其所有使用者確定的程式碼都以檢視的擁有者的身份執行,正如預期的那樣。

PostgreSQL 專案感謝 Pedro Gallegos 報告此問題。

錯誤修復和改進

此更新修復了過去幾個月報告的 65 多個錯誤。 以下列出的問題會影響 PostgreSQL 16。其中一些問題也可能影響其他受支援的 PostgreSQL 版本。

  • 修復在執行 JIT 內聯時可能導致記憶體不足情況的記憶體洩漏問題。
  • 多個查詢規劃器修復。
  • 在更新分割區鍵欄位時,將 MERGE 行為與 UPDATE 對齊,並跳過觸發 AFTER UPDATE ROW 觸發器和其他更新後操作。
  • 修復 ALTER TEXT SEARCH CONFIGURATION ... MAPPING 命令中重複的 Token 名稱問題。
  • 修復具有重複角色名稱的 DROP ROLE
  • 在 DROP STATISTICS 期間正確鎖定關聯的表,以防止在 ANALYZE 同時執行時發生錯誤。
  • 修復 GENERATEDDEFAULT 表達式的函數揮發性檢查。
  • 確保在將現有索引與新的分割區索引匹配時,排序規則相符。
  • 避免在子索引與分割區索引上的 REINDEX INDEX 同時刪除時發生故障。
  • 修復 GIN 索引清理期間的鎖定問題。 在這種情況下,如果多個進程嘗試清理同一個 GIN 索引頁面,則有可能導致索引損毀。 如果您認為自己受到此問題的影響,請在安裝此更新後重新建立 GIN 索引。
  • 避免分割區的 SP-GiST 索引發生故障。
  • 多個大型物件的擁有權修復。
  • EXPLAIN (BUFFERS) 中,將 I/O 時序資料的名稱從“shared/local”更改為“shared”。
  • 確保在執行期間或執行後不久發生系統崩潰時,CREATE DATABASE 命令的持久性。
  • 在從備份啟動和結束恢復時新增更多記錄訊息。
  • 還原了一個變更,該變更使 walreceiver 進程在等待建立複製連線時不響應 SIGTERM
  • 多個邏輯複製的修復。
  • 修復與 OpenSSL 3.2 的不相容性。
  • 修復 PL/pgSQL 以允許使用 SQL 標準函數主體的 CREATE FUNCTION/CREATE PROCEDURE SQL 命令。
  • 修復 libpq 管道模式中的錯誤處理。
  • 確保 initdb 始終取消註釋 postgresql.conflc_ 系列參數的條目。
  • pg_dump 中,不要傾印擴充功能成員物件的 RLS 策略或安全性標籤。

此版本還將時區資料檔案更新為 tzdata 版本 2024a,以用於格陵蘭、哈薩克和巴勒斯坦的 DST 法律變更,以及南極站 Casey 和 Vostok 的更正。 還有越南、多倫多和密克隆的歷史更正。

更新

所有 PostgreSQL 更新版本都是累積的。 與其他次要版本一樣,使用者無需轉儲和重新載入其資料庫或使用 pg_upgrade 即可套用此更新版本; 您只需關閉 PostgreSQL 並更新其二進位檔案即可。

如果您使用 GIN 索引,您可能需要在更新到此版本後重新建立索引。請參閱發布說明以獲取更多資訊。

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

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

連結

如果您對此發布公告有更正或建議,請將其發送到 pgsql-www@lists.postgresql.org 公共郵件列表