PostgreSQL 2010-10-05 安全性更新

發布於 2010-10-05

PostgreSQL 全球開發團隊今天發布了 PostgreSQL 物件關聯式資料庫系統所有活躍分支的安全更新,包括版本 9.0.1、8.4.5、8.3.12、8.2.18、8.1.22、8.0.26 和 7.4.30。 這是 PostgreSQL 版本 7.4 和 8.0 的最後一次更新。

此更新包含一個安全性修補程式,可防止未經授權的權限提升,方法是修改「受信任的」程序語言函數,以及多個修復程式,用於修復次要的啟動時間、資料完整性和錯誤處理問題。

使用 PL/perl 和 PL/tcl 程序語言和 SECURITY DEFINER 的使用者應立即更新他們的安裝。 建議所有其他資料庫管理員在下一次排定的停機時間更新您的 PostgreSQL 版本。

次要版本 7.4.30 和 8.0.26 是 PostgreSQL 7.4 和 8.0 的最終版本,因為這兩個版本都不再受到支援。 PostgreSQL 社群也將在今年稍晚停止發布版本 8.1 的更新。 鼓勵使用者盡快升級到較新的版本。 請參閱我們的發布支援政策

http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy

此安全性漏洞允許任何具有「受信任的」程序語言使用權限的普通 SQL 使用者在執行時修改程序語言函數的內容。 如 CVE-2010-3433 中所述,經過身份驗證的使用者可以通過劫持 SECURITY DEFINER 函數(或其他現有的身份驗證更改操作)來完成權限提升。 程序語言的存在本身並不會使您的資料庫應用程式容易受到攻擊。

PL/Perl 和 PL/tcl 已在此版本中修補; PL/PHP 的修補程式正在等待中。 所有具有受信任版本的第三方程序語言也容易受到此問題的影響。 諮詢 CVE-2010-3433: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3433

此版本包含大量內部文件更新和 130 個錯誤修復,包括

  • 防止 show_session_authorization() 在自動清理程序中崩潰,已回溯修補到所有支援的版本;
  • 修復重複連線名稱錯誤後的連線洩漏,修復處理長度超過 62 位元組的連線名稱,並改進 contrib/dblink 對包含已刪除欄位的資料表的處理,已回溯修補到所有支援的版本;
  • 防止函數傳回 setof record,其中並非所有傳回的列實際上都是相同的列類型,已回溯修補到 8.0;
  • 修復 UNION ALL 成員關係的可能重複掃描,已回溯修補到 8.2;
  • 在不常見的 btree 故障案例中將 PANIC 減少為 ERROR,已回溯修補到 8.2;
  • 將 hstore(text, text) 函數新增到 contrib/hstore,以支援從已在 9.0 中棄用的 => 運算子遷移。 函數支援已回溯修補到 8.2;
  • 在 Win32 上將退出代碼 128 視為非致命,已回溯修補到 8.2;
  • 修復無法將快取計畫標記為暫時,導致 CREATE INDEX CONCURRENTLY 無法立即使用,已回溯修補到 8.3;
  • 修復外部聯結的內部是否是在其輸出列表中具有非嚴格表達式的子查詢的評估,已回溯修補到 8.4;
  • 允許在同時指定 host 和 hostaddr 的情況下成功進行完整的 SSL 憑證驗證,已回溯修補到 8.4;
  • 改進並行還原處理選擇性還原(-L 選項)的能力,已回溯修補到 8.4,但有一些注意事項;
  • 修復非擁有者執行 "ALTER TABLE t ADD COLUMN c serial" 時發生的故障,僅限 9.0。
  • 針對聯結移除的幾項錯誤修復,僅限 9.0。

請參閱發布說明以獲取包含詳細資訊的完整變更清單。

與其他次要版本一樣,使用者無需轉儲和重新載入資料庫即可應用此更新發布; 您只需關閉 PostgreSQL 並更新其二進位檔案即可。 跳過多個更新的使用者可能需要查看發布說明以獲取額外的更新後步驟。

立即下載新版本

如果您想要更詳細地了解此漏洞,請參閱常見問題解答

此文章已從舊版 PostgreSQL 網站遷移。 我們對遷移造成的任何格式問題表示歉意。