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

PostgreSQL 17.6, 16.10, 15.14, 14.19, 13.22, and 18 Beta 3 釋出!

釋出於 2025-08-14,作者:PostgreSQL 全球開發組
PostgreSQL 專案 安全

PostgreSQL 全球開發組已釋出所有受支援 PostgreSQL 版本的更新,包括 17.6、16.10、15.14、14.19 和 13.22,以及 PostgreSQL 18 的第三個 beta 版本。此次釋出修復了 3 個安全漏洞和過去幾個月報告的 55 個以上錯誤。

如果您之前使用 numeric_minmax_multi_ops 運算子類建立了 BRIN 索引,請在升級例項後參閱“更新”部分以獲取額外說明。

有關更改的完整列表,請參閱 發行說明

PostgreSQL 13 EOL 通知

PostgreSQL 13 將於 2025 年 11 月 13 日停止接收修復。如果您在生產環境中使用 PostgreSQL 13,我們建議您計劃升級到更新的、受支援的 PostgreSQL 版本。請參閱我們的 版本策略 以獲取更多資訊。

安全問題

CVE-2025-8713:PostgreSQL 最佳化器統計資訊可能在檢視、分割槽或子表中暴露取樣資料

CVSS v3.1 基本分:3.1

受支援的、有漏洞的版本:13 - 17。

PostgreSQL 最佳化器統計資訊允許使用者讀取使用者無法訪問的檢視中的取樣資料。另外,統計資訊允許使用者讀取行安全策略旨在隱藏的取樣資料。PostgreSQL 透過對列中的可用資料進行取樣來維護表的統計資訊;在查詢規劃過程中會參考這些資料。在此次釋出之前,使用者可以建立一個洩露資訊的運算子,繞過檢視訪問控制列表 (ACL),並繞過分割槽或表繼承層級中的行安全策略。可訪問的統計資訊資料尤其包括直方圖和最常見值列表。CVE-2017-7484 和 CVE-2019-10130 旨在解決此類漏洞,但此漏洞仍然存在。受影響的版本包括 PostgreSQL 17.6、16.10、15.14、14.19 和 13.22 之前的版本。

PostgreSQL 專案感謝 Dean Rasheed 報告此問題。

CVE-2025-8714:PostgreSQL pg_dump 允許源伺服器的超級使用者在 psql 客戶端執行任意程式碼

CVSS v3.1 基本分:8.8

受支援的、有漏洞的版本:13 - 17。

PostgreSQL 中 pg_dump 對不受信任資料的包含,允許惡意源伺服器的超級使用者透過 psql 元命令在恢復時作為執行 psql 的客戶端作業系統帳戶執行任意程式碼。pg_dumpall 也受到影響。pg_restore 在用於生成純格式轉儲時也受到影響。這類似於 MySQL CVE-2024-21096。受影響的版本包括 PostgreSQL 17.6、16.10、15.14、14.19 和 13.22 之前的版本。

PostgreSQL 專案感謝 Martin Rakhmanov、Matthieu Denais 和 RyotaK 報告此問題。

CVE-2025-8715:PostgreSQL pg_dump 中物件名稱的換行符在 psql 客戶端和恢復目標伺服器中執行任意程式碼

CVSS v3.1 基本分:8.8

受支援的、有漏洞的版本:13 - 17。

PostgreSQL 中 pg_dump 對換行符的不當處理,允許源伺服器的使用者透過目的構造的物件名稱中的 psql 元命令,在恢復時作為執行 psql 的客戶端作業系統帳戶執行任意程式碼。同樣的攻擊也可以作為恢復目標伺服器的超級使用者實現 SQL 注入。pg_dumpall、pg_restore 和 pg_upgrade 也受到影響。受影響的版本包括 PostgreSQL 17.6、16.10、15.14、14.19 和 13.22 之前的版本。11.20 版本之前的版本不受影響。CVE-2012-0868 曾修復此類問題,但 11.20 版本重新引入了此問題。

PostgreSQL 專案感謝 Noah Misch 報告此問題。

錯誤修復和改進

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

  • 修復了使用 numeric_minmax_multi_ops 運算子類的 BRIN 索引可能導致其膨脹和效率低下的問題。請參閱“更新”部分,瞭解如何修復這些索引的說明。
  • 對邏輯複製進行了多項修復,包括記憶體分配失敗、事務重複回放、無限等待、意外關機以及備用伺服器無法關機等問題。
  • 修復了檢查點期間 WAL 的過早刪除,這可能會影響使用複製槽時的恢復。
  • 回滾了一項可能拒絕大小超過 10MB 的 XML 文件的更改。
  • 修復了在 SIMILAR TO 表示式中處理巢狀字元類(例如 [[:alpha:]%_])的方式。
  • 恢復了 PL/pgSQL 表示式使用並行執行的能力。
  • 避免了 B-tree 索引可能修改錯誤條目的罕見情況。
  • MERGE 進行了多項修復,包括併發時和目標表為繼承層級父表時的查詢結果不正確的問題。
  • 修復了在資料可壓縮性不高時可能發生的 LZ4 解壓縮失敗問題。
  • 防止在 shared_buffers 設定非常大的系統上發生檢查點時的無限迴圈。
  • 修復了在使用具有大量組成員資格的 Active Directory 帳戶時 GSSAPI 身份驗證的問題。此次釋出還修復了在使用非阻塞模式下的 SSL 或 GSSAPI 加密時的時序依賴性連線失敗問題。
  • 修復了 libpq 函式 PQcancelCreate() 中的崩潰問題。
  • 修復了多個資源洩漏問題。

更新

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

如果您有任何使用 numeric_minmax_multi_ops 運算子類的 BRIN 索引,建議在更新後對其進行 REINDEX,以修復任何潛在的膨脹和效率低下問題。

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

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

關於 PostgreSQL 18 Beta 的說明

此次釋出是 PostgreSQL 18 的第三個 beta 版本,使社群離通用可用性(暫定於 2025 年 9 月/10 月)又近了一步。

本著開源 PostgreSQL 社群的精神,我們強烈鼓勵您在您的系統上測試 PostgreSQL 18 的新功能,以幫助我們消除錯誤和其他問題。雖然我們不建議您在生產環境中使用 PostgreSQL 18 Beta 3,但我們鼓勵您尋找方法來執行您典型的應用程式工作負載來測試此 beta 版本。

您的測試和反饋有助於社群確保 PostgreSQL 18 保持我們交付世界上最先進的開源關係型資料庫的穩定、可靠的釋出標準。請閱讀我們關於 beta 測試過程的更多資訊,以及您如何做出貢獻。

https://postgres.tw/developer/beta/

升級到 PostgreSQL 18 Beta 3

要從早期版本的 PostgreSQL 升級到 PostgreSQL 18 Beta 3,您需要使用類似於在 PostgreSQL 主版本之間進行升級的策略(例如 pg_upgradepg_dump / pg_restore)。有關更多資訊,請訪問關於 升級 的文件部分。

Beta 2 以來的更改

PostgreSQL 18 Beta 3 中的修復和更改包括:

  • 修復了在簡單查詢中的效能迴歸問題。
  • 修復了在使用某些附加軟體時觀察到的 can't get cancellation key 錯誤。
  • 修復了後臺工作程序在崩潰後未能重啟的問題。
  • 修復了罕見的非同步 I/O 故障。
  • 停止在 pg_dumpall --statistics-only--no-schema 中轉儲過多的物件。
  • 刪除了 pg_dumpall 的非文字輸出檔案格式。
  • 修復了 32 位系統上 date_trunc(..., 'infinity'::timestamptz) 的問題。

請參閱 發行說明 以獲取新功能和更改功能的完整列表。

https://postgres.tw/docs/18/release-18.html

測試 Bug 和相容性

每個 PostgreSQL 版本的穩定性在很大程度上取決於您,也就是社群,在 PostgreSQL 18 通用可用之前,使用您的工作負載和測試工具測試即將釋出的版本,以查詢錯誤和迴歸。由於這是 Beta 版,資料庫行為、功能細節和 API 仍可能發生微小更改。您的反饋和測試將有助於確定新功能的最終調整,因此請在不久的將來進行測試。使用者測試的質量決定了我們何時可以進行最終釋出。

一份 待辦事項列表已在 PostgreSQL Wiki 上公開。您可以使用 PostgreSQL 網站上的此表單 報告錯誤

https://postgres.tw/account/submitbug/

Beta 時間表

這是第 18 版的第三個 beta 版本。PostgreSQL 專案將在最終釋出(大約在 2025 年 9 月/10 月)之前釋出一個或多個釋出候選版本。有關更多資訊,請參閱 Beta 測試頁面。

連結

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