ZooKeeper 安全性

Apache 軟體基金會非常重視安全性問題。由於 Apache ZooKeeper 專案特別基礎建設的性質,我們過去沒有收到很多報告,但這並不表示我們不擔心某些錯誤和漏洞。如果您有任何疑慮或相信您已發現漏洞,我們建議您透過電子郵件地址 security@zookeeper.apache.org 與我們聯繫。在訊息中,請嘗試提供問題的說明,並盡量提供重現問題的方法。請注意,此安全性地址應僅用於未公開的漏洞。已知問題的處理應透過 jira 和郵件清單定期處理。請在公開披露任何安全性問題之前,將其報告給專案安全性地址。

ASF 安全性團隊維護一個頁面,說明如何處理漏洞,請查看他們的 網頁 以取得更多資訊。

漏洞報告

CVE-2024-23944:持續監控處理中的資訊揭露

嚴重性:重大

受影響版本

說明

由於遺漏 ACL 檢查,Apache ZooKeeper 中的持續監控程式處理中的資訊揭露。它允許攻擊者透過將持續監控程式 (addWatch 指令) 附加到攻擊者已存取的父節點來監控子節點。當觸發持續監控程式時,ZooKeeper 伺服器不會執行 ACL 檢查,因此觸發監控事件的節點完整路徑會揭露給監控程式的擁有者。重要的是要注意,此漏洞只會揭露路徑,不會揭露節點資料,但由於節點路徑可能包含使用者名稱或登入 ID 等敏感資訊,因此此問題潛在重大。

建議使用者升級至已修正此問題的版本 3.9.2、3.8.4。

致謝

周吉安(寒泉) zhoujian.zja@alibaba-inc.com (報告者)

參考資料

https://zookeeper.dev.org.tw/ https://www.cve.org/CVERecord?id=CVE-2024-23944

CVE-2023-44981:SASL Quorum 對等驗證中的授權繞過

嚴重性:重大

受影響版本

說明

Apache ZooKeeper 中的使用者控制金鑰授權繞過漏洞。如果在 ZooKeeper 中啟用 SASL Quorum 對等驗證 (quorum.auth.enableSasl=true),則授權會透過驗證 SASL 驗證 ID 中的實例部分是否列在 zoo.cfg 伺服器清單中來完成。SASL 驗證 ID 中的實例部分是選用的,如果遺漏,例如「eve@EXAMPLE.COM」,則會略過授權檢查。因此,任意端點可以加入叢集並開始將偽造的變更傳播至領導者,本質上讓它擁有資料樹的完整讀寫存取權。預設情況下不會啟用 Quorum 對等驗證。

建議使用者升級至已修正此問題的版本 3.9.1、3.8.3、3.7.2。

或者,確保集體選舉/Quorum 通訊受到防火牆保護,因為這將減輕此問題。

請參閱文件以取得有關正確叢集管理的更多詳細資訊。

致謝

Damien Diederen ddiederen@apache.org (報告者)

參考資料

https://zookeeper.dev.org.tw/

https://www.cve.org/CVERecord?id=CVE-2023-44981

CVE-2019-0201:Apache ZooKeeper 中的資訊揭露漏洞

嚴重性:重大

供應商:Apache 軟體基金會

受影響版本:3.4.14 之前的 ZooKeeper,3.5.0-alpha 到 3.5.4-beta 的 ZooKeeper 3.5.0。不受支援的 ZooKeeper 1.x 到 3.3.x 版本也可能受影響。

說明:ZooKeeper 的 getACL() 指令在擷取所要求節點的 ACL 時不會檢查任何權限,並以純文字字串傳回 ACL Id 欄位中包含的所有資訊。DigestAuthenticationProvider 會以用於使用者驗證的雜湊值覆寫 Id 欄位。因此,如果使用摘要驗證,未驗證或未取得權限的使用者將會透過 getACL() 要求揭露未加鹽雜湊值。

減緩措施:使用摘要以外的其他驗證方法(例如 Kerberos),或升級到 3.4.14 或更新版本(如果使用 3.5 分支,則升級到 3.5.5 或更新版本)。

致謝:此問題是由 Harrison Neal harrison@patchadvisor.com PatchAdvisor, Inc. 發現。

參考:https://issues.apache.org/jira/browse/ZOOKEEPER-1392

CVE-2018-8012:Apache ZooKeeper Quorum 對等相互驗證

嚴重性:重大

供應商:Apache 軟體基金會

受影響版本:3.4.10 之前的 ZooKeeper,3.5.0-alpha 到 3.5.3-beta 的 ZooKeeper 3.5.0。不受支援的 ZooKeeper 1.x 到 3.3.x 版本也可能受影響。

說明:當伺服器嘗試加入法定人數時,不會強制執行驗證/授權。因此,任意端點可能會加入叢集,並開始將偽造的變更傳播給領導者。

減緩措施:升級到 3.4.10 或更新版本(如果使用 3.5 分支,則升級到 3.5.4-beta 或更新版本),並啟用法定人數對等驗證。

或者,確保集體選舉/Quorum 通訊受到防火牆保護,因為這將減輕此問題。

請參閱文件以取得有關正確叢集管理的更多詳細資訊。

致謝:此問題是由 Földi Tamás 和 Eugene Koontz 發現。

參考:https://issues.apache.org/jira/browse/ZOOKEEPER-1045 https://cwiki.apache.org/confluence/display/ZOOKEEPER/Server-Server+mutual+authentication https://zookeeper.dev.org.tw/doc/current/zookeeperAdmin.html

CVE-2017-5637:對 wchp/wchc 四個字母單字 (4lw) 的 DOS 攻擊 {#CVE-2017-5637}

嚴重性:中度

供應商:Apache 軟體基金會

受影響版本:3.4.0 到 3.4.9 的 ZooKeeper,3.5.0 到 3.5.2 的 ZooKeeper 3.5.0。不受支援的 ZooKeeper 1.x 到 3.3.x 版本也可能受影響。

注意:3.5 分支目前仍為測試版。

說明:兩個四個字母單字指令「wchp/wchc」會大量使用 CPU,如果濫用,可能會導致 ZooKeeper 伺服器上的 CPU 使用率激增,進而導致伺服器無法提供合法的用戶端要求。目前沒有已知的妥協利用此漏洞。

減緩措施:這會影響用戶端連接埠可公開存取的 ZooKeeper 陣列,因此建議使用防火牆保護 ZooKeeper 陣列。文件也已更新以釐清這一點。此外,已提供一個修補程式 (ZOOKEEPER-2693) 以預設停用「wchp/wchc」指令。- ZooKeeper 3.4.x 使用者應升級到 3.4.10 或套用修補程式。- ZooKeeper 3.5.x 使用者應升級到 3.5.3 或套用修補程式。

參考 [1] https://issues.apache.org/jira/browse/ZOOKEEPER-2693

CVE-2016-5017:ZooKeeper C cli shell 中的緩衝區溢位漏洞 {#CVE-2016-5017}

嚴重性:中度

供應商:Apache 軟體基金會

受影響版本:ZooKeeper 3.4.0 至 3.4.8 ZooKeeper 3.5.0 至 3.5.2 不受支援的 ZooKeeper 1.x 至 3.3.x 版本也可能受影響

注意:3.5 分支目前仍為 alpha 版本。

說明:ZooKeeper C 用戶端 shell「cli_st」和「cli_mt」在使用「cmd:」批次模式語法解析輸入命令時,會出現一個與緩衝區溢位相關的漏洞。如果命令字串超過 1024 個字元,就會發生緩衝區溢位。目前沒有已知的危害會利用此漏洞,而且如果啟用安全性,攻擊者會受到用戶端層級安全性約束的限制。C cli shell 的目的是作為如何使用 C 用戶端介面的範例/範本,而非作為生產工具 - 文件也已針對此點進行說明。

緩解措施:無論版本為何,都應使用功能齊全/受支援的 Java cli shell,而非 C cli shell。

修補程式解決了此處報告的問題,但並未讓用戶端準備好投入生產使用。社群目前沒有計畫讓此用戶端準備好投入生產使用,並強烈建議用戶轉移至 Java cli,並僅將 C cli 用於說明目的。

致謝:此問題是由 Lyon Yang (@l0Op3r) 發現的

參考資料:Apache ZooKeeper 安全性頁面