Apache ZooKeeper の情報漏えいの脆弱性 CVE-2024-23944 が FIX:ただちにパッチ適用を!

CVE-2024-23944: Critical Apache ZooKeeper Flaw Exposes Sensitive Data, Patch Immediately

2024/03/14 SecurityOnline — Apache ZooKeeper に、深刻な脆弱性 CVE-2024-23944 が発見された。この脆弱性の悪用に成功した攻撃者は、秘密裏に機密情報の監視が可能となり、設定と管理のためにおいて ZooKeeper に依存しているシステムを、危険にさらす可能性を生み出す。

ZooKeeper は何のためにあるのか?

ZooKeeper は、数多くの複雑なアプリケーションのために機能する。そして、以下のようなコア・サービスを提供している:

  • 集中設定: 分散されたシステム間でのコンフィグを保存/同期させ、すべてが同じページにいることを保証する。
  • ネーミング・サービス: 内部システムの電話帳のようなものであり、コンポーネント間での容易な発見を実現する。
  • 同期: 分散タスクを管理し、正しい順序でアクションを実行し、リソースが衝突しないようにする。
脆弱性とは?

この問題のコアは、ZooKeeper の “Persistent Watchers” の扱い方にある。これらの Watchers は、ZooKeeper のデータ構造において監視される部分で変更が発生したときに、通知をトリガーするためのものである。しかし、セキュリティ・チェックが欠落しているため、すでにある程度のアクセス権を持っている攻撃者は、これらの Watchers を悪用し、彼らが可視化できないはずの領域をスパイできる。

セキュリティ・アドバイザリには、「ACL チェックの欠落により、Apache ZooKeeperの Persistent Watchers 処理には情報漏えいの脆弱性が存在する。攻撃者が既にアクセス権を持つ親に Persistent Watchers (addWatch コマンド) をアタッチすることで、攻撃者は子 Znode を監視できる。ZooKeeper サーバは、Persistent Watchers がトリガーされたときに ACL チェックを行わないため、ウォッチ・イベントがトリガーされた Znode のフルパスが Watchers のオーナーに公開されてしまう」と記されている。

この脆弱性により、機密データの内容がダイレクトに漏れることはないが、データストアへのパスが暴露される。そして、これらのパスには、ユーザー名/システム識別子/設定の詳細などの、攻撃者に悪用され易い貴重な手がかりが含まれることが多い。

誰が影響を受けるのか?

以下の Apache ZooKeeper バージョンを使用している組織は、この脆弱性の影響を受ける:

  • 3.9.0 〜 3.9.1
  • 3.8.0 〜 3.8.3
  • 3.6.0 〜 3.7.2
対処方法
  • 迅速なアップグレード:すでに Apacheにより、パッチ適用されたバージョン 3.9.2/3.8.4 がリリースされている。これらのアップデートを、最優先でインストールしてほしい。
  • ZooKeeper の使用状況の確認: システム内で ZooKeeper を使用されている場所を特定する。機密性の高いデータを管理するアプリケーションに対して、優先的にパッチを適用する。
  • アクセスの制限: ZooKeeper に対する厳格なアクセス制御を、可能な限り実施する。パッチ適用後も、攻撃対象領域を限定するよう心がける。