AI分散処理基盤「Ray」に不正なデータセットの読み込みで乗っ取りの脆弱性 CVE-2026-57516、2.56.0へ更新を
OpenAIやUberも使うAI分散処理フレームワーク「Ray」に、細工されたデータセット(.tar)を読み込むだけでサーバー上で不正なプログラムを実行される脆弱性CVE-2026-57516が見つかりました。公開データやモデル配布物の取り込みが危険に。危険度8.8で、2.56.0以降への更新が必要です。
目次
OpenAIやUberも使うAI分散処理フレームワーク「Ray」に、細工されたデータセット(.tar)を読み込むだけでサーバー上で不正なプログラムを実行される脆弱性CVE-2026-57516が見つかりました。公開データやモデル配布物の取り込みが危険に。危険度8.8で、2.56.0以降への更新が必要です。
AIや機械学習の大規模な計算を支える分散処理フレームワーク「Ray(レイ)」に、細工されたデータセットを読み込むだけでサーバーを乗っ取られる脆弱性が見つかりました。管理番号はCVE-2026-57516、危険度は10点満点中8.8点(重要度「高」)です。
RayはOpenAIがChatGPTの学習に使ったことでも知られ、Uber、Spotify、Netflixなど多くの企業のAI基盤で採用されています。今回の欠陥は、Rayでデータを読み込むread_webdataset()という機能にあり、攻撃者が用意した不正なデータファイル(.tar形式)を取り込んだ瞬間に、サーバー上で任意のプログラムが実行されてしまいます。公開されているデータセットやモデル配布物を取り込む場面が危険になります。開発元は修正版「2.56.0」を公開しており、それより前を使っている場合はすぐに更新が必要です。
| 項目 | 内容 |
|---|---|
| 管理番号 | CVE-2026-57516 |
| 対象ソフト | Ray(AI分散処理 フレームワーク) |
| 影響を受ける版 | 2.56.0 より前 |
| 修正版 | 2.56.0 |
| 危険度 | CVSS 8.8 / 10(重要度「高」) |
| 脆弱性の種類 | 安全でない復元処理 (CWE-502/CWE-94) |
| 攻撃の前提 | 不正なデータセットを 読み込むこと(無認証) |
| 悪用の確認 | 現時点で報告なし (KEV未登録) |
| Rayの規模 | GitHub 4万スター超 週1,000万ダウンロード超 |
誰が、何のために狙うのか
狙うのはAIの学習データやモデルを、公開リポジトリや共有ストレージから取り込んでいる開発現場です。攻撃者は、正規のデータセットに見せかけた不正なファイルを、誰でも取得できる場所に置いておきます。具体的には、設定ミスで書き込み可能になったクラウドストレージ(S3)、ネット上で配布されるデータ置き場、モデル・データ共有サイトの配布物などです。
開発者がその不正なデータセットをRayで読み込むと、データの中に仕込まれたプログラムが、読み込んだだけで自動的に実行され、開発サーバーや学習環境を乗っ取られてしまいます。ファイルを開いて中身を使おうとする前の、取り込みの段階で発動する点が厄介です。
乗っ取られると、被害はその一台にとどまりません。AIの学習環境には、学習用データ、開発中のモデル、クラウドやデータベースへの接続情報(認証情報)が集まっています。攻撃者はそこを足がかりに、データやモデルの盗み出し、モデルへの不正な細工、社内ネットワークの奥への侵入へと進む恐れがあります。汚染されたデータやモデルが配布物として出回る「サプライチェーン攻撃」の一種でもあり、取り込む素材の信頼性が問われます。だからこそ、後述する更新と運用の見直しが必要です。
Rayとは何のツールか
Rayは、Pythonで書いたプログラムやAIの処理を、1台のパソコンから多数のサーバーへ簡単に広げて動かせるようにするオープンソースの基盤です。カリフォルニア大学バークレー校で生まれ、現在はAnyscale社が中心となって開発しています。大量のデータを使うAIの学習や、モデルを本番で動かす処理を、複数のサーバーに分散して効率よく回す役割を担います。
利用は非常に広く、GitHubのスター数は4万を超え、週あたりのダウンロードは1,000万回を超えます。OpenAIはChatGPTの学習の調整にRayを使ったとされ、Uber、Spotify、Netflix、ByteDanceなど、名の知れた企業のAI基盤で使われています。つまり、現代のAI開発を支える土台のひとつです。
今回の欠陥は、Rayの中でもデータを読み込む部分(Ray Data)にあります。AIの学習では、画像や音声などを大量にまとめた「WebDataset」という形式(中身は.tarという圧縮まとめファイル)がよく使われ、Rayにはそれを読み込む専用の機能が用意されています。その読み込み処理に危険な穴がありました。
何が起きるのか、脆弱性の中身
原因は、データを読み込むときの「復元処理」が中身を信用しすぎている点にあります。プログラムの世界では、データを保存・送信するためにいったん固めた形から、使える形に戻す処理(デシリアライズ)がよく使われます。この戻す処理に細工したデータを渡すと、任意のプログラムが動いてしまうことがあり、Pythonの「pickle(ピクル)」という仕組みは特にこの危険で知られています。
開発元の脆弱性情報によると、Rayのread_webdataset()は、初期設定の読み込み処理で、ファイルの拡張子に応じて中身を無検証のまま復元していました。具体的には、.pickle/.pklファイルはそのままpickleで復元し、.pt/.pthファイルはtorch.load()で(安全確認を無効にした状態で)読み込みます。どちらも細工されていれば、その瞬間に攻撃者のプログラムが走ります。
やっかいなのは、この復元がデータを本格的に使い始める前に発動する点です。.take_all()や.iter_batches()のような、データをひと通り取り出すごく普通の操作をしただけで実行されてしまいます。開発元は、悪意ある.tarの配布経路として、設定ミスで書き込み可能になったS3、ネット公開のWebDataset置き場、Hugging Face Hubのデータセットミラー、画像認識でよく使われるモデル配布物(model zoo)のtarファイルなどを挙げています。いずれも、AI開発で日常的に触れる場所です。pickle形式のファイルがなぜ危険なのかは、AIモデルの危険コードを検査するツール「picklescan」の脆弱性の記事でも詳しく触れています。
どれくらい危険なのか、前提条件を正しく読む
危険度はCVSS 8.8で「高」に分類されます。乗っ取りが成功すれば被害は最大級ですが、条件を正確に押さえておきましょう。
この脆弱性は、ネットワーク越しに誰でも一方的に発動できるものではありません。危険度の内訳でも「利用者の操作が必要」とされており、攻撃者が用意した不正なデータセットを、利用者がRayで読み込むことが前提になります。逆に言えば、信頼できる自前のデータしか読み込まない運用なら、この経路では影響を受けにくくなります。
ただし「自分で読み込むのだから安全」とは言えません。AI開発では、公開データセットや他者が作ったモデルを取り込むのはごく当たり前の作業です。信頼できると思っていた配布元が乗っ取られていたり、ミラーに偽物が紛れ込んでいたりする可能性は常にあります。外から取り込むデータやモデルは「実行され得るプログラム」だと考えて扱うのが、この種の脅威への基本姿勢です。
自分の環境は危ないか、バージョン別の早見表
まず pip show ray でバージョンを確認してください。以下の早見表で状況を判断できます。
| 使っているバージョン | 外部データセットを読み込む | 自前データのみ |
|---|---|---|
| 2.56.0 より前 | 危険度・高 今すぐ更新 | 危険度・中 それでも更新推奨 |
| 2.56.0 以降 | 対策済み | 対策済み |
| Ray未使用 | 影響なし | 影響なし |
自前の信頼できるデータしか扱っていなければ切迫度は下がりますが、チームや外部から受け取ったデータが混ざる運用は珍しくありません。いずれにせよ2.56.0以降への更新をおすすめします。
技術者の視点、Rayはデータ読み込みで同じ穴を繰り返している
今回のCVE-2026-57516は、単発の事故ではありません。Rayのデータ読み込み部分(Ray Data)では、外部から受け取ったデータを安全でない方法で復元してしまう欠陥が、少し前にも見つかっています。
| 管理番号 | きっかけ | 修正版 |
|---|---|---|
| CVE-2026-41486 | Parquetファイルの 読み込み(cloudpickle) | 2.55.0 |
| CVE-2026-57516 | WebDatasetの読み込み (pickle/torch.load) | 2.56.0 |
直前のCVE-2026-41486は、Parquetという別のデータ形式を読み込むときに、中身をcloudpickleでそのまま復元してしまう欠陥でした。形式こそ違え、「外から来たデータを、実行され得る形のまま復元する」という同じ根っこから生まれています。エンジニアの目で見れば、これはRay固有の問題というより、pickleやtorch.loadのような「便利だが危険な復元の仕組み」を、データ読み込みの各経路で使い続けていることの表れです。1つの読み込み経路を直しても、別の形式の経路に同じ危険が残りやすいため、同系統の脆弱性が繰り返し出てきます。
実務的な教訓は明確です。外部から取り込むデータやモデルは、信頼できる供給元に限定し、可能なら安全な読み込み方式(pickleを使わない形式や、安全確認を有効にした読み込み)に切り替えることです。同じAI基盤では、特徴量ストアFeastでも安全でない復元処理による乗っ取りが起きており、この「復元処理の危うさ」はAI開発ツール全体に共通する弱点です。取り込む部品やデータの点検は、OSS サプライチェーン スキャナーの考え方とあわせて見直す価値があります。
悪用は確認されているのか
現時点で、この脆弱性が実際の攻撃に使われたという報告は確認されていません。米政府機関CISAの「実際に攻撃されている脆弱性リスト(KEV)」にも、CVE-2026-57516は登録されていません。
ただし、脆弱性の詳細と修正内容は公開されています。汚染したデータセットを配布し、標的が読み込むのを待つ手口は、AI開発を狙うサプライチェーン攻撃としては現実的です。「まだ攻撃されていない」ことは「更新しなくてよい」理由にはなりません。
いま何をすべきか
最優先は、Rayを修正版2.56.0以降へ更新することです。Pythonのパッケージとして配布されているため、pip install --upgrade rayなどで更新できます。配布ページで最新版を確認してください。
更新に加えて、運用面も見直しておくと安全です。まず、読み込むデータセットやモデルの供給元を、信頼できる範囲に限定すること。出所の不明な.tarや、pickle形式(.pkl/.pt)を含む配布物は、そのまま読み込まないのが安全です。次に、学習・データ処理をネットワークやファイルへのアクセスを絞った隔離環境で動かすこと。万一悪意あるコードが動いても被害を封じ込められます。取り込むモデルやデータは、危険なコードが仕込まれていないかを検査するツールにかけることも有効です。
まとめ
CVE-2026-57516は、AI分散処理フレームワークRayで、不正なデータセット(.tar)を読み込むだけでサーバー上のプログラムを乗っ取られる脆弱性です。危険度はCVSS 8.8と高く、悪用には不正なデータの読み込みという前提がありますが、公開データやモデルの取り込みが日常のAI開発では現実的な脅威です。対象は2.56.0より前で、最新の2.56.0で修正済みです。
見逃せないのは、Rayがデータ読み込みの各経路で、安全でない復元によるRCEを繰り返してきた点です。今回の更新で終わりにせず、外部から取り込むデータやモデルを「実行され得るもの」として扱い、供給元の限定や隔離環境での実行へ運用を切り替えることをおすすめします。まずは自分の環境のRayが2.56.0以降になっているか、今すぐ確認してください。
参照元

堀川 慎
Backend Engineer / AWS / Django / Go