Apache Arrow R の脆弱性 CVE-2024-52338 が FIX:任意のコード実行が可能に

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()