Letter R on fire

プログラミング言語 R に新たな脆弱性が発見され、特別に細工された RDS および RDX ファイルのデシリアライズ時に任意のコードを実行される可能性があります。

Rはオープンソースのプログラミング言語であり、カスタム・データ分析モデルを開発・使用する統計学者やデータ・マイナーに特に人気があり、新興のAI/ML分野でも採用が増加している。

HiddenLayerの研究者は最近、CVE-2024-27322(CVSS v3:8.8)として追跡されているRの脆弱性を発見し、被害者がR Data Serialization(RDS)またはRパッケージファイル(RDX)を開くと、攻撃者は標的のマシン上で任意のコードを実行できるようになりました。

この脆弱性は、Rがシリアライズ(’saveRDS’)とデシリアライズ(’readRDS’)を処理する方法、特にプロミス・オブジェクトと “遅延評価 “を悪用します。

攻撃者は、RDSファイルのメタデータに任意のコードを含むpromiseオブジェクトを式の形で埋め込むことができ、このpromiseオブジェクトはデシリアライズの際に評価され、結果としてコードが実行されます。

被害者は、これらのファイルを実行するように説得されるか、騙される必要があるため、この攻撃にはソーシャルエンジニアリングの要素が含まれます。

しかし、攻撃者はより受動的なアプローチを選択することも可能であり、広く使用されているリポジトリにパッケージを配布し、被害者がダウンロードするのを待ちます。

影響と緩和策

HiddenLayer社は、CVE-2024-27322が重要な分野で広く使用されていること、十分なチェックが行われないままデータ分析環境に導入されているパッケージが多数あることから、広範囲に影響を及ぼすと説明している。

“GitHubを検索した結果、私たちのチームは、この脆弱性が悪用される多くの方法の1つであるreadRDSが、135,000以上のRソースファイルで参照されていることを発見しました。リポジトリに目を通すと、信頼されていない、ユーザーが提供したデータに対して使用されているものが多く、プログラムを実行しているシステムの完全な侵害につながる可能性があることがわかりました。潜在的に脆弱なコードを含むソースファイルの中には、R Studio、Facebook、Google、Microsoft、AWS、その他の主要ソフトウェアベンダーのプロジェクトが含まれていた。”- HiddenLayer

CERT/CCは、Rおよび未検証パッケージのreadRDS関数を使用しているプロジェクトや組織に対し、CVE-2024-27322に対処したR Coreバージョン4.4.0にアップデートする必要性を警告するアラートを発行しました。

2024年4月24日にリリースされたR Core v4.4.0は、シリアライズストリームでの約束の使用に関する制限を導入し、任意のコードの実行を防止します。

すぐにアップグレードできない組織や、追加のセキュリティ・レイヤーを実装したい組織は、サンドボックスやコンテナなどの分離された環境でRDS/RDXファイルを実行し、基盤となるシステム上でのコード実行を防ぐ必要があります。