JVNVU#96606632
Rプログラミング言語の実装において、安全でないデータのデシリアライゼーションが発生する問題(CVE-2024-27322)
Rプログラミング言語の実装において、安全でないデータのデシリアライゼーションが発生する問題が指摘されています。
- R 1.4.0から4.4.0より前のバージョン
Rプログラミング言語ではデータのシリアライズやデシリアライズがサポートされており、シリアライズされたデータはR Data Serialization(RDS)と呼ばれる形式で.rdsファイルや.rdxファイルとして保存されます。また、Rは遅延評価もサポートしており、Promiseクラスを実装し必要なタイミングで呼び出すことにより実現できます。このPromiseクラスのオブジェクトには、評価時に実行される式と、式の結果が格納される値とが含まれ、PROMSXMPと呼ばれるRDS形式でシリアライズすることが可能です。
R 1.4.0から4.4.0より前のバージョンでは、RDS形式によりシリアライズされたPromiseクラスのオブジェクトがeval()関数により読み込まれる際、そのオブジェクト内の値が未評価の状態で参照されると、オブジェクト内の式が直ちに(適切な遅延評価の実行タイミングより前に)実行されてしまう問題があります。そのため、攻撃者は悪意のあるコードを式として含むPromiseクラスオブジェクトを.rdsファイルや.rdxファイルにシリアライズし、それらのファイルをロードさせることにより、システム内で任意のコードをデシリアライズさせ、実行させることが可能になります。
この問題に対して、CVE-2024-27322が採番されています。
システム上で任意のコードが実行される可能性があります。
アップデートする
Rプロジェクトは、この脆弱性を修正したR 4.4.0を提供しています。バージョン4.4.0では、シリアライズされたデータ内のPromiseオブジェクトの使用が制限され、適切な遅延評価のタイミングで使用されるように修正されています。
信頼できないデータをデシリアライズしない
.rdsや.rdx、.rdbファイルをコンテナまたはサンドボックス環境で使用するなど、信頼できないデータを含むファイルを読み込ませないよう留意してください。
ベンダ | リンク |
R Programing Language | The Comprehensive R Archive Network |
-
CERT/CC Vulnerability Note VU#238194
R Programming Language implementations are vulnerable to arbitrary code execution during deserialization of .rds and .rdx files -
HiddenLayer Research
R-BITRARY CODE EXECUTION: VULNERABILITY IN R’S DESERIALIZATION