
こんにちは、稗田利明です!
R言語の実装に深刻な脆弱性が発見された。脆弱性ポータルサイト「JVN」が公開した脆弱性レポート「JVNVU#96606632」によると、R言語のデータシリアライゼーション処理に問題があり、悪意あるコードを含むシリアライズファイルを読み込むことで任意のコードが実行される可能性がある。
この問題は、R言語のバージョン「R 1.4.0」から「R 4.4.0」より前のバージョンで発生する。R言語ではデータのシリアライズ(メモリ上のデータ状態をストレージに保存すること)やデシリアライズ(シリアライズしたデータを復元して処理を再開すること)がサポートされており、シリアライズされたデータは「R Data Serialization」(RDS)と呼ばれる形式で保存される。
この脆弱性は、RDS形式でシリアライズされたPromiseクラスのオブジェクトを「eval()」関数で評価・読み込む際に発生する。オブジェクト内の値が未評価の状態で参照されると、オブジェクト内の式が適切な遅延評価の実行タイミングより前に実行されてしまう問題がある。
報告者であるHiddenLayerによる脆弱性の評価は、「CVSS 3.1」の基本値で「8.8」と非常に深刻なものとなっている。
この問題は「R 4.4.0」で解決済みだが、.rdsや.rdx、.rdbファイルをコンテナーまたはサンドボックス環境で使用するなど、信頼できないデータを含むファイルを読み込む際にはセキュリティに十分配慮する必要がある。
JVN, "JVNVU#96606632: R言語の実装における安全でないデータのデシリアライゼーションの問題", https://jvn.jp/vu/JVNVU96606632/
統計解析向けのプログラミング言語「R」の実装に欠陥、任意コード実行のおそれ(窓の杜) - Yahoo!ニュース https://news.yahoo.co.jp/articles/280cbfe81abc8aa4b41c8896cf6b2296ad8b66ea