PostgreSQL Global Development Group 發布了 PostgreSQL 所有受支援版本的更新,包括 14.3、13.7、12.11、11.16 和 10.21。 此版本修補了一個安全性漏洞,並修正了過去三個月回報的 50 多個錯誤。
我們建議您盡早安裝此更新。
如果您在使用了 ltree
資料類型的欄位上有任何 GiST 索引,則需要在升級後 重建索引。
有關完整的變更列表,請參閱發布說明。
PostgreSQL 10 將於 2022 年 11 月 10 日停止接收修補程式。如果您在生產環境中執行 PostgreSQL 10,我們建議您規劃升級到更新、受支援的 PostgreSQL 版本。 請參閱我們的 版本政策 以取得更多資訊。
受影響的版本:10 - 14。 安全性團隊通常不測試不受支援的版本,但此問題已經存在很久了。
當具備權限的使用者維護其他使用者的物件時,Autovacuum、REINDEX
、CREATE INDEX
、REFRESH MATERIALIZED VIEW
、CLUSTER
和 pg_amcheck
在安全操作方面做得不夠完善。 這些指令啟動相關保護的時間太晚或根本沒有啟動。 攻擊者如果擁有在至少一個綱要中建立非暫時性物件的權限,則可以使用超級使用者身分執行任意 SQL 函數。
雖然迅速更新 PostgreSQL 是大多數使用者最佳的修補方式,但無法這樣做的使用者可以透過停用 autovacuum、不手動執行上述指令,以及不從 pg_dump
指令的輸出還原來規避此漏洞。 在這種變通方法下,效能可能會快速下降。 VACUUM
是安全的,並且當受信任的使用者擁有目標物件時,所有指令都可以正常執行。
PostgreSQL 專案感謝 Alexander Lakhin 回報此問題。
此更新修正了過去幾個月回報的 50 多個錯誤。 下面列出的問題會影響 PostgreSQL 14。 其中一些問題也可能影響其他受支援的 PostgreSQL 版本。
包含在此版本中
ltree
欄位上 GiST 索引損毀的問題。 升級後,您需要重建索引任何 ltree
欄位上的 GiST 索引。tbl.*
)產生的元組中的欄位名稱,如果存在相關的命名複合類型,則在 SELECT
列表的頂層之外,現在始終與這些命名複合類型的欄位名稱相關聯。 如果您依賴之前的行為,發布說明 中詳細說明了一種變通方法。interval
類型提取 epoch 值時的不正確捨入問題。pg_stat_get_replication_slot(NULL)
時出現問題。table_to_xmlschema()
中 timestamptz
和 timetz
類型的不正確輸出。SEARCH
或 CYCLE
功能的查詢包含重複的 common-table expression (WITH
) 名稱,則規劃器會失敗的問題。ALTER FUNCTION
以支援在同一指令中變更函數的並行屬性和其 SET
變數列表。CLUSTER
在索引上排序表格列時,索引的前導鍵是一個表達式時,排序不正確的問題。DROP TABLESPACE
和檢查點之間可能導致無法從 tablespace 目錄中移除所有已刪除檔案的競爭條件。TRUNCATE
指令與檢查點重疊後,在崩潰復原中可能發生的問題。_
作為自訂組態參數名稱的第一個字元。PANIC: xlog flush request is not satisfied
錯誤。max_sync_workers_per_subscription
限制時,可以重新啟動邏輯複製應用程式 worker。psql
、pg_dump
和 pg_amcheck
中使用 database.schema.table
模式。pageinspect
進行了多項修正,以提高整體穩定性。BEFORE INSERT ... FOR EACH ROW
觸發程序時,停用 postgres_fdw
中的批次插入。此更新還包含 tzdata 版本 2022a,用於巴勒斯坦的 DST 法規變更,以及智利和烏克蘭的歷史更正。
如需完整的可用變更清單,請參閱發布說明。
所有 PostgreSQL 更新版本都是累積性的。 與其他次要版本一樣,使用者不需要傾印和重新載入資料庫或使用 pg_upgrade
即可套用此更新版本; 您可以簡單地關閉 PostgreSQL 並更新其二進位檔案。
但是,如果您在使用了 ltree
資料類型的欄位上有任何 GiST 索引,則需要在升級後 重建索引。
跳過一個或多個更新版本的使用者可能需要執行其他更新後步驟; 請參閱先前版本的發布說明以了解詳細資訊。
如需更多詳細資訊,請參閱發布說明。