CVE-2024-52338: Critical Security Flaw in Apache Arrow R Package Allows Arbitrary Code Execution
2024/11/29 SecurityOnline — Apache Arrow R パッケージのバージョン 4.0.0〜16.1.0 に存在する、重大な脆弱性 CVE-2024-52338 が修正された。 この脆弱性の悪用に成功した攻撃者は、悪意を持って細工されたデータファイルを処理するシステム上で、任意のコード実行の可能性を得る。

Apache Arrow は、高速なデータ変換とインメモリ分析のための、ユニバーサルなカラム型フォーマットを備える多言語ツール・ボックスである。このツールは、システムにおける効率的なデータの保存/処理/移動を可能にする、一連の機能を搭載している。具体的に言うと、Arrow R パッケージのユーザーは、Apache Arrow C++ ライブラリの多くの機能へのアクセスが可能となる。
脆弱性の詳細
脆弱性 CVE-2024-52338 は、 Apache Arrow R パッケージ内の IPC/Parquet リーダーにおける、安全が確保されないデータのデシリアライゼーションに起因する。たとえば、ユーザーが提供するファイルなどの信頼できないソースから、Arrow IPC/Feather/Parquet ファイルを読み取るアプリケーションは、特に脆弱である。
脆弱性の影響と範囲
脆弱性 CVE-2024-52338 の悪用に成功した攻撃者は、システムの侵害を達成し、機密データへの不正アクセスの可能性を手にする。ただし、この脆弱性は、Apache Arrow R パッケージに固有のものであり、他の Apache Arrow 実装やバインディングには影響を及ぼさない。その一方で、脆弱な Arrow R パッケージと併用するかたちで、使用される他のアプリケーションはリスクにさらされる。
緩和策
Apache が、Arrow R パッケージのユーザーに対して強く推奨しているのは、バージョン 17.0.0 以降にアップグレードすることだ。影響を受けるパッケージに依存する下流のライブラリも、必要に応じて依存関係を更新する必要がある。
すでに Apache は、バージョン 17.0.0 をリリースし、この問題に対処している。
Arrow R パッケージ・ユーザーに対して強く推奨されるのは、最新のバージョンへと、速やかにアップグレードすることだ。影響を受けるパッケージに依存する、下流のライブラリにおいても、必要に応じて依存関係を更新する必要がある。
一時的な回避策
すぐにアップグレードできないユーザーに対して、推奨される一時的な回避策は、信頼できないデータをテーブルに読み込み、その内部の to_data_frame() メソッドを利用することだ。例:read_parquet(…, as_data_frame = FALSE)$to_data_frame()
Apache Arrow R に脆弱性とのことです。すでにパッチが提供されていますので、ご利用のチームは、ご確認ください。このブログでは初登場の Arrow なので、調べてみたら、「Apache Arrow 覚え書き」という記事が、Qiita にポストされていました。Apache Arrow の重要なコンポーネントは、メモリ内のカラム形式である。Apache Arrowは、メモリ内で構造化されたテーブルのようなデータセットを表現するための、言語に依存しない標準化された仕様を設計/実装する。このデータ形式には、分析データベース・システムやデータ・フレーム・ライブラリなどのニーズをサポートするように設計された、豊富なデータ型システム (ネストされたデータ型やユーザー定義のデータ型を含む) が含まれている」と解説されていました。よろしければ、Apache で検索も、ご参照ください。
You must be logged in to post a comment.