ZooKeeperのセキュリティ

Apacheソフトウェア財団は、セキュリティ問題を非常に重要視しています。Apache ZooKeeperプロジェクトのインフラストラクチャとしての性質上、これまで多くの報告はありませんでしたが、だからといって、いくつかのバグや脆弱性に対する懸念がないわけではありません。懸念事項がある場合、または脆弱性を発見したと思われる場合は、security@zookeeper.apache.orgまでメールでご連絡ください。メッセージには、問題の説明と、できれば再現方法を記載してください。このセキュリティアドレスは、未公開の脆弱性についてのみ使用してください。既知の問題への対処は、Jiraおよびメーリングリストを介して通常どおり行う必要があります。**セキュリティ上の問題を公開する前に、プロジェクトのセキュリティアドレスに報告してください。**

ASFセキュリティチームは、脆弱性の処理方法を説明したページを管理しています。詳細については、Webページをご覧ください。

脆弱性報告

CVE-2024-23944: 永続ウォッチャー処理における情報漏洩

重大度: 重大

影響を受けるバージョン

説明

ACLチェックが欠落しているため、Apache ZooKeeperの永続ウォッチャー処理における情報漏洩。攻撃者は、既にアクセス権を持っている親に永続ウォッチャー(addWatchコマンド)をアタッチすることにより、子znodeを監視できます。ZooKeeperサーバーは、永続ウォッチャーがトリガーされたときにACLチェックを実行しないため、ウォッチイベントがトリガーされるznodeのフルパスがウォッチャーの所有者に公開されます。この脆弱性によって公開されるのはパスのみに限定され、znodeのデータではないことに注意することが重要ですが、znodeパスにはユーザー名やログインIDなどの機密情報が含まれている可能性があるため、この問題は潜在的に重大です。

ユーザーは、問題を修正したバージョン3.9.2、3.8.4にアップグレードすることをお勧めします。

クレジット

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

参考資料

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

CVE-2023-44981: SASLクォーラムピア認証における認証バイパス

重大度: 重大

影響を受けるバージョン

説明

Apache ZooKeeperにおけるユーザー制御キーによる認証バイパスの脆弱性。ZooKeeperでSASLクォーラムピア認証が有効になっている場合(quorum.auth.enableSasl = true)、SASL認証IDのインスタンス部分がzoo.cfgサーバーリストにリストされていることを確認することによって認証が行われます。SASL認証IDのインスタンス部分はオプションであり、 'eve@EXAMPLE.COM' のように欠落している場合、認証チェックはスキップされます。その結果、任意のエンドポイントがクラスターに参加し、偽の変更をリーダーに伝播し始める可能性があり、本質的にデータツリーへの完全な読み取り/書き込みアクセス権が付与されます。クォーラムピア認証はデフォルトでは有効になっていません。

ユーザーは、問題を修正したバージョン3.9.1、3.8.3、3.7.2にアップグレードすることをお勧めします。

あるいは、アンサンブル選挙/クォーラム通信がファイアウォールによって保護されていることを確認することで、問題を軽減できます。

正しいクラスター管理の詳細については、ドキュメントを参照してください。

クレジット

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

参考資料

https://zookeeper.dokyumento.jp/

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。サポートされていない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クォーラムピア相互認証

重大度: 重大

ベンダー: Apacheソフトウェア財団

影響を受けるバージョン:3.4.10より前のZooKeeper、3.5.0-alphaから3.5.3-betaまでのZooKeeper。サポートされていないZooKeeper 1.xから3.3.xバージョンも影響を受ける可能性があります。

説明:サーバーがクォーラムに参加しようとするときに、認証/承認は適用されません。その結果、任意のエンドポイントがクラスターに参加し、偽の変更をリーダーに伝播し始める可能性があります。

対策:3.4.10以降(3.5ブランチの場合は3.5.4-beta以降)にアップグレードし、クォーラムピア相互認証を有効にします。

あるいは、アンサンブル選挙/クォーラム通信がファイアウォールによって保護されていることを確認することで、問題を軽減できます。

正しいクラスター管理の詳細については、ドキュメントを参照してください。

クレジット:この問題は、FöldiTamásとEugene Koontzによって特定されました。

参考資料:https://issues.apache.org/jira/browse/ZOOKEEPER-1045 https://cwiki.apache.org/confluence/display/ZOOKEEPER/Server-Server+mutual+authentication https://zookeeper.dokyumento.jp/doc/current/zookeeperAdmin.html

CVE-2017-5637:wchp / wchc four letter words(4lw)に対するDOS攻撃{#CVE-2017-5637}

重大度:中程度

ベンダー: Apacheソフトウェア財団

影響を受けるバージョン:ZooKeeper 3.4.0〜3.4.9 ZooKeeper 3.5.0〜3.5.2サポートされていないZooKeeper 1.x〜3.3.xバージョンも影響を受ける可能性があります

注:3.5ブランチはまだベータ版です。

説明:2つの4文字コマンド「wchp / wchc」はCPUを大量に消費し、悪用されるとZooKeeperサーバーのCPU使用率が急上昇する可能性があり、サーバーが正当なクライアント要求を処理できなくなります。この脆弱性を悪用した既知の侵害はありません。

対策:これはクライアントポートがパブリックにアクセス可能なZooKeeperアンサンブルに影響を与えるため、ファイアウォールでZooKeeperアンサンブルを保護することをお勧めします。この点を明確にするために、ドキュメントも更新されました。さらに、デフォルトで「wchp / wchc」コマンドを無効にするパッチ(ZOOKEEPER-2693)が提供されています。-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シェルのバッファオーバーフローの脆弱性{#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ブランチはまだアルファ版です。

説明:ZooKeeper Cクライアントシェル「cli_st」と「cli_mt」には、「cmd」を使用する場合の入力コマンドの解析に関連するバッファオーバーフローの脆弱性があります。"バッチモード構文。コマンド文字列が1024文字を超えると、バッファオーバーフローが発生します。この脆弱性を悪用した既知の侵害はなく、セキュリティが有効になっている場合、攻撃者はクライアントレベルのセキュリティ制約によって制限されます。C cliシェルは、Cクライアントインターフェイスの使用方法のサンプル/例として意図されており、本番ツールとしては意図されていません。ドキュメントでもこの点が明確になっています。

対策:バージョンに関係なく、C cliシェルではなく、フル機能/サポートされているJava cliシェルを使用することが重要です。

このパッチはここで報告されている問題を解決しますが、クライアントを本番環境で使用できるようにはしません。コミュニティは現在、このクライアントを本番環境に対応させる予定はなく、ユーザーはJava cliに移行し、C cliを説明のみに使用することを強くお勧めします。

クレジット:この問題は、Lyon Yang(@ l0Op3r)によって発見されました。

参考資料:Apache ZooKeeperセキュリティページ