PostgreSQL 14.1、13.5、12.9、11.14、10.19 和 9.6.24 已發布!

發布於 2021-11-11,由 PostgreSQL 全球開發團隊
PostgreSQL 專案 安全性

PostgreSQL 全球開發團隊已發布所有受支援資料庫系統版本的更新,包含 14.1、13.5、12.9、11.14、10.19 和 9.6.24。此版本修正了兩個安全性漏洞,並修復了過去三個月回報的 40 多個錯誤。

此外,這是 PostgreSQL 9.6 的最終版本。如果您在生產環境中執行 PostgreSQL 9.6,我們建議您規劃升級。

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

安全性問題

CVE-2021-23214:伺服器進程從中間人接收未加密的位元組

受影響的版本:9.6 - 14。安全性團隊通常不測試不受支援的版本,但此問題存在已久。

當伺服器配置為使用具有 clientcert 要求的 trust 身份驗證,或使用 cert 身份驗證時,儘管使用了 SSL 憑證驗證和加密,中間人攻擊者仍可以在首次建立連線時注入任意 SQL 查詢。

PostgreSQL 專案感謝 Jacob Champion 回報此問題。

CVE-2021-23222:libpq 進程從中間人接收未加密的位元組

受影響的版本:9.6 - 14。安全性團隊通常不測試不受支援的版本,但此問題存在已久。

儘管使用了 SSL 憑證驗證和加密,中間人攻擊者仍可以將錯誤的回應注入到客戶端的前幾個查詢中。

如果滿足更多前提條件,攻擊者可以洩漏客戶端的密碼或在會話初期可能傳輸的其他機密資料。攻擊者必須有一種方法欺騙客戶端預期的伺服器,使其將機密資料提供給攻擊者。已知具有該屬性的一個實現是易受 CVE-2021-23214 攻擊的 PostgreSQL 配置。

與任何對 CVE-2021-23214 的利用一樣,伺服器必須使用具有 clientcert 要求的 trust 身份驗證或使用 cert 身份驗證。要洩漏密碼,客戶端必須擁有密碼,這在使用易受 CVE-2021-23214 攻擊的身份驗證配置時是不典型的。攻擊者必須有其他方法來存取伺服器以檢索洩漏的資料(有效的、非特權的登入帳戶就足夠了)。

PostgreSQL 專案感謝 Jacob Champion 回報此問題。

錯誤修復與改進

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

其中一些修復包括

  • 修復實體複製,以處理主要伺服器在傳送以部分 WAL 記錄結尾的 WAL 區段後崩潰的情況。在套用此更新時,請先更新您的備用伺服器,然後再更新主要伺服器,以便它們準備好在主要伺服器崩潰時處理修復。
  • 修復平行 VACUUM,以便在表至少有兩個大於 min_parallel_index_scan_size 閾值的索引時,它可以處理低於該閾值的索引。此問題不會影響自動清理。如果您受到此問題的影響,則應重新索引任何手動清理的表。
  • 修復導致 CREATE INDEX CONCURRENTLYREINDEX CONCURRENTLY 寫入損壞索引的原因。您應該重新索引任何同時建構的索引。
  • 修復附加/分離分割區,這可能允許某些 INSERT/UPDATE 查詢在作用中的會話中行為不正常。
  • 修復使用 CREATE TYPE 建立新範圍類型,這可能會對後續的事件觸發器或後續執行 CREATE TYPE 命令造成問題。
  • 修復複合材料中網域陣列中元素欄位的更新。
  • 不允許組合 FETCH FIRST WITH TIESFOR UPDATE SKIP LOCKED
  • 修復數值 power() 函數中邊緣案例的精度損失。
  • 修復在子交易中還原入口網站快照,這可能會導致崩潰。例如,當 COMMIT 之後立即接著執行查詢的 BEGIN ... EXCEPTION 區塊時,可能會在 PL/pgSQL 中發生這種情況。
  • 如果在匯出快照後交易失敗,請正確清理。如果在建立複製槽後回滾,然後在同一會話中建立另一個複製槽,則可能會發生這種情況。
  • 修復備用伺服器上「溢出的子交易」包裝追蹤,這可能導致效能下降。
  • 確保在升級備用伺服器期間正確處理準備好的交易。
  • 確保在重新命名表時使用正確的鎖定層級。
  • 避免在刪除同時被刪除物件的角色時崩潰。
  • shared_memory_typesysv 時,不允許將 huge_pages 設定為開啟
  • 修復 PL/pgSQL RETURN QUERY 中的查詢類型檢查。
  • pg_dump 的多項修復,包括正確轉儲非全域預設權限的能力。
  • 使用 CLDR 專案的資料將 Windows 時區名稱對應到 IANA 時區。

此更新還包含 tzdata 版本 2021e,用於斐濟、約旦、巴勒斯坦和薩摩亞的 DST 法律變更,以及巴貝多、庫克群島、蓋亞那、紐埃、葡萄牙和東加的歷史更正。

此外,Pacific/Enderbury 時區已重新命名為 Pacific/Kanton。此外,以下時區已合併到附近的更多人口稠密的時區中,自 1970 年以來,它們的時鐘與這些時區一致:Africa/Accra、America/Atikokan、America/Blanc-Sablon、America/Creston、America/Curacao、America/Nassau、America/Port_of_Spain、Antarctica/DumontDUrville 和 Antarctica/Syowa。在所有這些情況下,先前的時區名稱仍然作為別名。

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

PostgreSQL 9.6 已終止生命週期 (EOL)

這是 PostgreSQL 9.6 的最終版本。如果您在生產環境中執行 PostgreSQL 9.6,我們建議您規劃升級到更新、受支援的 PostgreSQL 版本。請參閱我們的 版本控制策略,以取得更多資訊。

更新

所有 PostgreSQL 的更新版本都是累積性的。與其他小版本更新一樣,使用者不需要傾印和重新載入資料庫,也不需要使用 pg_upgrade 來套用此更新版本;您只需要關閉 PostgreSQL 並更新其二進位檔案即可。

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

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

連結