PostgreSQL 15.3、14.8、13.11、12.15 及 11.20 已釋出!

張貼於 2023-05-11,由 PostgreSQL 全球開發團隊
PostgreSQL 專案 安全性

PostgreSQL 全球開發團隊已釋出 PostgreSQL 所有受支援版本的更新,包含 15.3、14.8、13.11、12.15 及 11.20。此版本修正了兩個安全性漏洞以及過去幾個月回報的超過 80 個錯誤。

如需完整的變更列表,請參閱發布說明

PostgreSQL 11 終止支援通知

PostgreSQL 11 將於 2023 年 11 月 9 日停止接收修正程式。如果您在生產環境中執行 PostgreSQL 11,建議您規劃升級到更新、受支援的 PostgreSQL 版本。請參閱我們的版本政策以取得更多資訊。

安全性問題

CVE-2023-2454CREATE SCHEMA ... schema_element 繞過保護性的 search_path 變更。

受影響的版本:11 - 15。安全性團隊通常不會測試不受支援的版本,但這個問題存在已久。

這使擁有資料庫層級 CREATE 權限的攻擊者可以 bootstrap 超級使用者身分執行任意程式碼。資料庫擁有者預設擁有此權限,明確的授與可能會將其擴展到其他使用者。

PostgreSQL 專案感謝 Alexander Lakhin 回報此問題。

CVE-2023-2455:資料列安全策略忽略內聯後的使用者 ID 變更。

受影響的版本:11 - 15。安全性團隊通常不會測試不受支援的版本,但這個問題存在已久。

雖然 CVE-2016-2193 修正了資料列安全性和使用者 ID 變更之間的大多數互動,但它遺漏了一個涉及函式內聯的場景。這導致在使用角色特定的策略,並且給定的查詢是在一個角色下規劃,然後在其他角色下執行的情況下,可能應用不正確的策略。這種情況可能發生在 security definer 函式中,或者當一個通用使用者和查詢最初被規劃,然後在多個 SET ROLE 中重複使用時。應用不正確的策略可能會允許使用者完成原本被禁止的讀取和修改。這僅影響使用 CREATE POLICY 定義資料列安全策略的資料庫。

PostgreSQL 專案感謝 Wolfgang Walther 回報此問題。

錯誤修正與改進

此更新修正了過去幾個月回報的超過 80 個錯誤。以下列出的問題會影響 PostgreSQL 15。其中一些問題也可能影響其他受支援的 PostgreSQL 版本。

此版本包含

  • 使用 STRATEGY = WAL_LOG 時,針對 CREATE DATABASE 的多項修正,包含可能導致 template/source 資料庫的修改遺失的潛在損毀。
  • 修正 CREATE SCHEMA AUTHORIZATION 的崩潰問題。
  • 針對 MERGE 的多項修正。
  • 針對分割資料表中的觸發程序的多項修正。
  • 不允許變更儲存在索引中的複合類型。
  • 確保啟用資料列層級安全性的父資料表使用 COPY TO 時,不會複製任何來自子資料表的資料列。
  • 調整與文字搜尋相關的字元分類邏輯,以正確偵測資料庫的預設排序規則使用 ICU 提供者時,主要的地區設定是否為 C。
  • 重新允許 ISO-8601 間隔欄位中的指數表示法。
  • 改進各種無效 JSON 字串文字的錯誤報告。
  • 修正因 vacuum_defer_cleanup_age 大於目前的 64 位元 xid 而造成的資料損毀。
  • 針對查詢剖析器和規劃器的多項修正,包含更好地偵測不正確巢狀的彙總。
  • 修正 boolean IS NOT TRUEIS NOT FALSE 條件的分割區修剪錯誤。在此之前,NULL 分割區被意外地修剪。
  • 修正 memoize 計劃執行中的記憶體洩漏。
  • 修正在執行批次插入時,使用分割區的外來資料表上的緩衝區參考計數洩漏。
  • 恢復對 sub-millisecond vacuum_cost_delay 設定的支援。
  • 針對檢視表和規則的多項修正。
  • 避免在使用多個掃描鍵掃描多欄 BRIN 索引 時進行不必要的工作。
  • 在邏輯複製 UPDATEDELETE 動作期間,忽略已卸除的欄位和產生的欄位。
  • 針對等待事件的命名和可用性的多項修正。
  • 支援具有 SCRAM-SHA-256 通道綁定的 RSA-PSS 憑證。此功能需要使用 OpenSSL 1.1.1 或更新版本進行建置。
  • 避免 Windows 上處理程序 ID 追蹤的競爭情況。
  • 修正 PL/pgSQL DO 區塊中使用轉換表達式時,在會話中的記憶體洩漏。
  • 在將清單結構轉換為多維 SQL 陣列時,收緊來自 PL/PerlPL/Python 的陣列維度檢查。
  • 修正 pg_dump,以便可以成功還原在 列舉類型欄位上進行雜湊分割的分割資料表。
  • 修正 pg_trgm,其中無法滿足的正規表示式可能會在使用 GiST 或 GIN 索引時導致崩潰。
  • 限制 pg_walinspectpg_get_wal_records_info() 的記憶體用量。

此版本還更新了時區資料檔案為 tzdata 版本 2023c,以應對埃及、格陵蘭、摩洛哥和巴勒斯坦的 DST 法律變更。在觀察莫斯科時間時,Europe/Kirov 和 Europe/Volgograd 現在使用縮寫 MSK/MSD,而不是數字縮寫,以與觀察莫斯科時間的其他時區保持一致。此外,America/Yellowknife 不再與 America/Edmonton 不同;這會影響該地區 1948 年之前的一些時間戳記。

如需可用的完整變更列表,請參閱發布說明

更新

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

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

如需更多詳細資訊,請參閱發布說明

連結

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