Last Updated on 2024-06-29 09:31 by admin
Rプログラミング言語において、サプライチェーン攻撃に利用可能なセキュリティ脆弱性が発見された。この脆弱性は、悪意のあるRDS(Rデータシリアライゼーション)ファイルを作成し、ロードおよび参照時にコード実行を引き起こす可能性がある。CVE識別子CVE-2024-27322が割り当てられ、promiseオブジェクトと遅延評価の使用に関連している。RDSフォーマットは、Rパッケージの保存とロード時にも利用される。この脆弱性は、信頼できないデータの逆シリアライズ時に任意のコード実行を引き起こす可能性があり、特別に作成されたRパッケージを通じてサプライチェーン攻撃にさらされるリスクがある。攻撃者は、RパッケージがRDSフォーマットを使用してデータを保存およびロードすることを利用し、パッケージが解凍および逆シリアライズされたときに自動的にコードが実行されるようにすることができる。このセキュリティ欠陥は、2024年4月24日にリリースされたバージョン4.4.0で対処された。
攻撃者は、promise命令を含むRDS形式のファイルを作成し、値をunbound_valueに設定し、式に任意のコードを含めることでこの脆弱性を悪用できる。遅延評価により、RDSファイルに関連付けられたシンボルにアクセスされたときにのみ、式が評価され実行される。Rパッケージ内でオブジェクトがコンパイルされた場合、パッケージはCRANなどのRリポジトリに追加され、ユーザーがそのパッケージをロードしたときに式が評価され、任意のコードが実行される。
【ニュース解説】
Rプログラミング言語における新たなセキュリティ脆弱性が発見され、サプライチェーン攻撃への露出が明らかになりました。この脆弱性は、特定の条件下で悪意のあるRDS(Rデータシリアライゼーション)ファイルを介して任意のコード実行を可能にするもので、CVE-2024-27322として識別されています。この問題は、R言語のpromiseオブジェクトと遅延評価の特性を悪用することにより生じます。
R言語は統計計算、データ可視化、機械学習などの分野で広く使用されており、RDSフォーマットはデータ構造やオブジェクトの状態を保存するために利用されます。この脆弱性の根本原因は、信頼できないデータの逆シリアライズ時に任意のコード実行を引き起こす可能性があることにあります。攻撃者は、RパッケージがRDSフォーマットを使用してデータを保存およびロードすることを利用し、パッケージが解凍および逆シリアライズされた際に自動的にコードが実行されるようにすることができます。
この脆弱性の悪用方法は、promise命令を含むRDS形式のファイルを作成し、その値をunbound_valueに設定し、式に任意のコードを含めることです。遅延評価の特性により、この式はRDSファイルに関連付けられたシンボル(変数)が参照されたときにのみ評価され、実行されます。これにより、RパッケージがCRANなどのRリポジトリに追加された場合、ユーザーがそのパッケージをロードすると、含まれる任意のコードが実行される可能性があります。
この問題は、2024年4月24日にリリースされたR言語のバージョン4.4.0で対処されました。しかし、この脆弱性の発見は、オープンソースソフトウェアのサプライチェーンにおけるセキュリティの重要性を改めて浮き彫りにします。開発者は、使用するライブラリやパッケージの安全性を常に確認し、最新のセキュリティパッチを適用することが重要です。
この脆弱性の発見は、サプライチェーン攻撃のリスクを低減するためのセキュリティ対策の強化を促します。また、開発者や組織に対して、使用するソフトウェアコンポーネントの出所を慎重に検討し、信頼できるソースからのみソフトウェアを取得することの重要性を再認識させる機会となります。長期的には、このような脆弱性への対応として、より安全なコーディング慣行の採用や、ソフトウェアのサプライチェーンセキュリティを強化するための新たなツールやプロセスの開発が期待されます。
from New R Programming Vulnerability Exposes Projects to Supply Chain Attacks.