2025年9月25日: PostgreSQL 18 釋出!

PostgreSQL 16.2, 15.6, 14.11, 13.14 和 12.18 釋出!

釋出日期:2024-02-08,作者:PostgreSQL Global Development Group
PostgreSQL 專案 安全

PostgreSQL 全球開發組釋出了對所有支援版本的 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 命令中重複令牌名稱的問題。
  • 修復帶重複角色名的 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,允許 CREATE FUNCTION/CREATE PROCEDURE SQL 命令使用 SQL 標準函式體。
  • 修復 libpq 管道模式中的錯誤處理。
  • 確保 initdb 總是取消註釋 postgresql.conflc_ 系列引數的條目。
  • pg_dump 中,不轉儲擴充套件成員物件的 RLS 策略或安全標籤。

本次釋出還更新了時區資料檔案到 tzdata release 2024a,以應對格陵蘭、哈薩克和巴勒斯坦的 DST 法規變更,以及對南極的 Casey 和 Vostok 站的修正。此外,還對越南、多倫多和米克隆進行了歷史修正。

更新

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

如果您使用 GIN 索引,在更新到此版本後可能需要重新索引。請參閱發行說明瞭解更多資訊。

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

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

連結

如果您對此版本公告有任何更正或建議,請將其傳送至 pgsql-www@lists.postgresql.org 公共 郵件列表