PostgreSQL 10.1、9.6.6、9.5.10、9.4.15、9.3.20 和 9.2.24 已發布!
發表於 2017-11-09,PostgreSQL Global Development Group
社群 PostgreSQL 專案
PostgreSQL Global Development Group 發布了我們資料庫系統所有受支援版本的更新,包括 10.1、9.6.6、9.5.10、9.4.15、9.3.20 和 9.2.24。此版本修正了三個安全性問題。此版本還修正了在 BRIN 索引、邏輯複製以及過去三個月內回報的其他錯誤中發現的問題。
所有使用受影響 PostgreSQL 版本的用戶都應盡快更新。如果您使用 BRIN 索引或 contrib/start-scripts,請參閱發布說明以了解其他升級後步驟。
安全性問題
此版本修正了三個安全性漏洞
CVE-2017-12172:啟動腳本允許資料庫管理員修改 root 擁有的檔案
在此版本之前,postmaster(在新版本中為“postgres”)程序的啟動日誌檔案是在該程序仍由 root 擁有的情況下開啟的。透過此設定,資料庫擁有者可以指定他們無權存取的檔案,並導致該檔案被記錄的資料損壞。
此修復可確保啟動日誌檔案以指定運行 PostgreSQL 伺服器的使用者身份開啟。任何使用啟動腳本的使用者都需要確保啟動日誌檔案由指定運行 PostgreSQL 伺服器的使用者擁有。
CVE-2017-15099:INSERT ... ON CONFLICT DO UPDATE 未能強制執行 SELECT 權限
在此版本之前,“INSERT ... ON CONFLICT DO UPDATE”不會檢查執行用戶是否具有在執行衝突檢查的索引上執行“SELECT”的權限。此外,在啟用列級別安全性的表中,“INSERT ... ON CONFLICT DO UPDATE”不會在執行更新之前檢查該表的 SELECT 策略。
此修復可確保 “INSERT ... ON CONFLICT DO UPDATE” 在執行之前檢查表權限和 RLS 策略。
錯誤修正和改進
此更新還修正了過去幾個月內回報的許多錯誤。其中一些問題僅影響版本 10,但許多問題會影響所有受支援的版本
- 修正 BRIN 索引中的競爭條件,該條件可能導致某些列未包含在索引中。
- 修正從 PL 語言函數調用邏輯解碼時發生的崩潰。
- 邏輯複製的幾個修正。
- 將附加到 INSERT/UPDATE/DELETE 語句的 CTE 行為恢復到 pre-version 10。
- 防止在處理嵌套觸發器激發時的低機率崩潰。
- 當 FILTER 子句中的條件評估為 FALSE 時,不要評估聚合函數的參數表達式。這符合 SQL 標準行為。
- 修正當多個 GROUPING SETS 列包含相同的簡單變數時的錯誤查詢結果。
- 修正在 SELECT 中評估來自目標列表的 set-returning 函數時,查詢生命週期內的記憶體洩漏。
- 並行查詢執行的幾個修正,包括修復包含某種類型位圖掃描的某些查詢並行執行時發生的崩潰。
- 修正 json_build_array()、json_build_object()、jsonb_build_array() 和 jsonb_build_object() 以正確處理明確的 VARIADIC 參數。
- 防止將無限浮點數值轉換為數值類型。
- 修正 autovacuum 的“工作項目”邏輯,以防止可能的崩潰和工作項目的靜默丟失。
- 圍繞將列添加到視圖末尾的幾個 VIEW 修正。
- 修復使用者建立的範圍資料類型的可雜湊性檢測。
- 改進使用 extended statistics 在列上進行查詢規劃。
- 防止 statement_timeout 較早發生時忽略 idle_in_transaction_session_timeout。
- 修正在會話中執行任何查詢之前處理超過 20 億個交易導致的 NOTIFY 訊息的低機率丟失。
- 幾個檔案系統交互修正。
- 在 COPY 或 lo_export() 中檔案建立失敗時,正確恢復 umask 設定。
- 修正 pg_dump 以確保它以有效的順序發出 GRANT 命令。
- 修正 pg_basebackup 的 tablespace 路徑匹配,以在比較之前規範化兩個路徑,以幫助提高 Windows 相容性。
- 修復 libpq,使其在嘗試讀取 "~/.pgpass" 檔案時不要求使用者的家目錄存在。
- ecpg 的幾個修正。
此更新還包含 tzdata release 2017c,其中包含 Fiji、Namibia、Northern Cyprus、Sudan、Tonga 和 Turks & Caicos Islands 的更新,以及 Alaska、Apia、Burma、Calcutta、Detroit、Ireland、Namibia 和 Pago Pago 的歷史更正。
版本 9.2 的 EOL 通知
PostgreSQL 版本 9.2 現在已終止生命週期 (EOL)。社群將不會為此版本發布其他更新或安全性修補程式。強烈建議仍在使用 9.2 的使用者盡快升級。請參閱我們的版本控制政策以獲取更多資訊。
連結