安全性更新 2012-06-04 發布

由 PostgreSQL Global Development Group 於 2012-06-04 發布

PostgreSQL Global Development Group 今天發布了 PostgreSQL 數據庫系統所有活動分支的安全性更新,包括 9.1.49.0.88.4.128.3.19 版本。

在可選的 pgcrypto 模組中使用帶有 DES 加密的 crypt(text, text) 函數的用戶應立即升級其安裝。 強烈建議所有其他數據庫管理員在下次計劃的停機時間升級您的 PostgreSQL 版本。 有關安全性修復的更多詳細資訊包含在下面。

此版本包含 42 個針對 9.1 版本的修復,以及針對舊版本的較少數量的修復,包括

  • 修復 citext 升級腳本,用於 citext 數組的排序規則以及在 citext 上的域
  • 修復時區處理
  • 修復 textcharname 的轉換,以便在多字節編碼中正確執行字符串截斷
  • 修復 to_tsquery() 中的內存複製錯誤
  • 確保 txid_current() 在熱備用中執行時報告正確的 epoch
  • 修復規劃器對子-SELECTS 的處理,該子-SELECTS 引用來自周圍查詢的外連接的可空側的變量
  • 修復輸出列不是簡單變量的 UNION ALL 子查詢的規劃
  • 修復 pg_attribute 非常大時的會話啟動緩慢問題
  • 確保順序掃描合理地頻繁檢查查詢取消
  • 在打印視圖或規則時安全地顯示整行變量
  • 修復 COPY FROM 以正確處理與無效編碼相對應的空標記字符串
  • 修復包含 RETURNING 子句的可寫 CTE 的 EXPLAIN VERBOSE
  • 修復 PREPARE TRANSACTION 以便在存在諮詢鎖的情況下正常工作
  • 修復擴展腳本中使用的臨時或瞬態表的錯誤
  • 確保 autovacuum 工作進程正確執行堆疊深度檢查
  • 修復日誌收集器在高負載下不丟失日誌一致性
  • 修復日誌收集器以確保在收到 SIGHUP 後將重新啟動文件輪換
  • 修復 GIN 索引的 WAL 重播邏輯,以防止在索引隨後被刪除時失敗
  • 避免在提交僅修改臨時表的事務時出現同步複製延遲

與其他次要版本一樣,用戶無需轉儲和重新加載其數據庫或使用 pg_upgrade 即可應用此更新版本; 您可以簡單地關閉 PostgreSQL 並更新其二進制文件。 數據庫重新啟動後,執行更新後步驟。 如果您使用 citext 數據類型,並且您通過運行 pg_upgrade 從以前的主要版本升級,請參閱 9.1.4 的發布說明以獲取重要的升級後步驟。

此更新包含以下問題的兩個安全性修復

  • CVE-2012-2143:修復 contrib/pgcrypto 的 DES crypt() 函數中的不正確密碼轉換

此漏洞會影響使用帶有 DES 加密和非 ASCII 密碼的 crypt(text, text) 函數(在可選的 pgcrypto 模組中)的 PostgreSQL 用戶。 受影響的密碼是包含字節值 0x80 的密碼。 在此類字節之後的字符將被忽略,從而使有效密碼比應有的密碼更短且更容易破解。 升級後,任何包含此類字節的密碼都需要重新生成。

  • CVE-2012-2655:忽略程序語言的調用處理程序的 SECURITY DEFINERSET 屬性

將此類屬性應用於調用處理程序可能會導致伺服器崩潰。

所有受支援的 PostgreSQL 版本都受到影響。 有關修復細節和步驟的完整更改列表,請參閱每個版本的發布說明。

立即從主下載頁面下載新版本。