PostgreSQL 全球開發組已釋出對所有受支援的 PostgreSQL 版本(包括 16.1、15.5、14.10、13.13、12.17 和 11.22)的更新。此版本修復了三個安全漏洞以及過去幾個月報告的 55 個以上錯誤。
此版本包括對索引的修復,在某些情況下,我們建議重新索引。請參閱“更新”部分了解更多詳情。
有關更改的完整列表,請參閱 發行說明。
這是 PostgreSQL 11 的最後一個釋出版本。PostgreSQL 11 已進入生命週期終點,將不再接收安全和錯誤修復。如果您在生產環境中使用 PostgreSQL 11,我們建議您計劃升級到更新的支援版本。有關更多資訊,請參閱我們的版本策略。
CVSS v3 基本評分:4.3
受支援且存在漏洞的版本:11 - 16。安全團隊通常不測試不受支援的版本,但這個問題非常陳舊。
接收“未知”型別引數的某些聚合函式呼叫,可能從“未知”型別值的末尾到下一個零位元組洩露伺服器記憶體。通常透過沒有型別指定的字串字面量獲取“未知”型別的值。我們尚未確認或排除導致洩露位元組中包含重要機密資訊的攻擊的可行性。
PostgreSQL 專案感謝 Jingzhou Fu 報告此問題。
CVSS v3 基本評分:8.8
受支援且存在漏洞的版本:11 - 16。安全團隊通常不測試不受支援的版本,但這個問題非常陳舊。
在修改某些 SQL 陣列值時,缺少溢位檢查允許已認證的資料庫使用者將任意位元組寫入便於任意程式碼執行的記憶體區域。缺少溢位檢查還允許已認證的資料庫使用者讀取伺服器記憶體的廣泛區域。CVE-2021-32027 的修復覆蓋了此類攻擊中的一部分,但遺漏了其他攻擊。
PostgreSQL 專案感謝 Pedro Gallegos 報告此問題。
pg_signal_backend 可以向某些超級使用者程序傳送訊號CVSS v3 基本評分:2.2
受支援且存在漏洞的版本:11 - 16。安全團隊通常不測試不受支援的版本,但這個問題非常陳舊。
文件說明 pg_signal_backend 角色不能向“超級使用者擁有的後端”傳送訊號。相反,它可以向後臺工作程序(包括邏輯複製啟動器)傳送訊號。它可以向 autovacuum 工作程序和 autovacuum 啟動器傳送訊號。向 autovacuum 工作程序和這兩個啟動器傳送訊號不會帶來有意義的利用,因此利用此漏洞需要一個非核心的、具有不那麼健壯的後臺工作程序的擴充套件。例如,一個不會自動重啟的非核心後臺工作程序將面臨相對於該特定後臺工作程序的拒絕服務。
PostgreSQL 專案感謝 Hemanth Sandrana 和 Mahendrakar Srinivasarao 報告此問題。
本次更新修復了過去幾個月報告的 55 個以上錯誤。以下列出的問題會影響 PostgreSQL 16。其中一些問題也可能影響 PostgreSQL 的其他受支援版本。
interval 列進行去重的問題。請在安裝此更新後重新索引包含 interval 列的任何 B 樹索引。minmax_multi opsclass 時,為 BRIN 索引中的 date、timestamptz 和 timestamp 值提供更有效的索引。雖然不是必需的,但我們建議在安裝此更新後重新索引包含這些資料型別的 BRIN 索引。如果將 pgrowlocks() 應用於分割槽表,則丟擲正確的錯誤。
修復了在使用 READ COMMITTED 模式進行 MERGE 操作期間,併發更新行的不一致重校驗問題。
UPDATE/DELETE/MERGE 中的目標表。tsvector 的超額分配問題。ALTER SUBSCRIPTION 以應用 run_as_owner 選項中的更改。COPY FROM 的若干問題,pg_control 處理撕裂讀取的若干問題。ORDER BY 或 DISTINCT 選項的聚合函式時發生的“找不到用於排序的路徑鍵項”錯誤。track_io_timing 時,將關係擴充套件操作所花費的時間計入寫時間。CALL 語句的依賴關係,並在需要時重新規劃它們。FATAL。pg_dump 以轉儲訂閱的新 run_as_owner 選項。pg_restore,以便選擇性還原會包含選定表的表級別和列級別 ACL。pg_upgrade 添加了邏輯,以檢查是否使用了過時的資料型別 abstime、reltime 和 tinterval。vacuumdb,使其多個 -N 開關能夠實際排除多個模式中的表。amcheck 將不再報告中斷的頁面刪除為損壞。btree_gin 索引在 interval 列上使用 < 和 <= 運算子時正確返回資料的問題。所有 PostgreSQL 更新版本都是累積的。與其他次要版本一樣,使用者不需要轉儲和重新載入資料庫或使用 pg_upgrade 來應用此更新版本;您可以直接關閉 PostgreSQL 並更新其二進位制檔案。
我們建議您在應用此更新後重新索引某些型別的索引,包括
interval 資料型別的 B 樹索引date、timestamptz 和 timestamp 資料型別以及 minmax_multi opsclass 的 BRIN 索引在 PostgreSQL 12 及以上版本中,您可以使用 REINDEX CONCURRENTLY 來避免阻塞受影響索引和表的寫入,例如
REINDEX INDEX CONCURRENTLY your_index_name;
跳過一個或多個更新版本的使用者可能需要執行額外的更新後步驟;請參閱早期版本的發行說明以獲取詳細資訊。
有關更多詳細資訊,請參閱 發行說明。
如果您對此版本公告有任何更正或建議,請將其傳送至 pgsql-www@lists.postgresql.org 公共 郵件列表。