Apache Kafka の脆弱性 CVE-2024-31141 が FIX:機密データへの不正アクセスの恐れ

CVE-2024-31141: Apache Kafka Vulnerability Exposes User Data to Potential Attackers

2024/11/18 SecurityOnline — Apache Kafka クライアントで発見された、脆弱性 CVE-2024-31141 を悪用する攻撃者は、機密情報への不正アクセスの可能性を手にする。その結果として、この人気の OSS イベント・ストリーミング・プラットフォームを、重要なデータ操作に利用している、何千もの企業に影響が及ぶ可能性がある。

この欠陥は、Apache Kafka クライアントにおけるコンフィグ・データ処理の方法に起因している。公式のセキュリティ・アドバイザリには、「Apache Kafka クライアントは、動作をカスタマイズするためのコンフィグ・データを受け入れ、それらのコンフィグを操作するために、ConfigProvider プラグインを取り込む。このメカニズムは柔軟性を目的としているが、意図せずに攻撃者への扉を開いてしまう」と記されている。

さらに、このアドバイザリは、「Apache Kafka は、ディスクまたは環境変数からの読取り機能を取り込んだ、FileConfigProvider/DirectoryConfigProvider/EnvVarConfigProvider も提供している。 Apache Kafka クライアント・コンフィグが、信頼できないパーティにより指定される可能性があるアプリケーションでは、それらの ConfigProviders を悪用する攻撃者が、ディスクおよび環境変数の任意の内容を読み取る可能性が生じる」と付け加えている。

基本的に、特定のコンフィグでは、この脆弱性を悪用する攻撃者が、機密ファイルおよび環境変数にアクセスする可能性が発生する。この問題は、SaaS 製品などの環境で、特に懸念されるものだ。このアドバイザリには、「この欠陥が、Apache Kafka Connect で悪用され、REST API アクセスからファイルシステム/環境アクセスへとエスカレートしていく可能性があり、きわめて危険な状態に達し得る」と指摘されている。

Apache Kafka プロジェクトが、ユーザーに対して強く推奨するのは、ただちにパッチを適用して、このリスクを軽減することだ。具体的には、kafka-clients をバージョン 3.8.0 以上にアップグレードし、JVM システム・プロパティ “org.apache.kafka.automatic.config.providers=none” の設定が推奨される。

ただし、このアドバイザリが注意喚起するのは、Kafka Broker/Kafka MirrorMaker 2.0/Kafka Streams/Kafka CLI Took のユーザーは、このシステム・プロパティ設定を行ってはならないという点だ。さらに、特定の ConfigProvider 実装を持つ Kafka Connect のユーザーには、アクセスを制限するための、”allowlist.pattern” と “allowed.paths” の実装が推奨されている 。