トップ/記事一覧/AI基盤Rayに攻撃確認、サイト閲覧でPC乗っ取り CVE-2025-62593は2.57.0へ
unknown-cover-ja-update

AI基盤Rayに攻撃確認、サイト閲覧でPC乗っ取り CVE-2025-62593は2.57.0へ

OpenAIやUberも使うAI分散処理フレームワーク「Ray」に、細工されたデータセット(.tar)を読み込むだけでサーバー上で不正なプログラムを実行される脆弱性CVE-2026-57516が見つかりました。公開データやモデル配布物の取り込みが危険に。危険度8.8で、2.56.0以降への更新が必要です。

ニュース2026年7月2日公開最終更新 2026年8月18日
目次
この記事のポイント

OpenAIやUberも使うAI分散処理フレームワーク「Ray」に、細工されたデータセット(.tar)を読み込むだけでサーバー上で不正なプログラムを実行される脆弱性CVE-2026-57516が見つかりました。公開データやモデル配布物の取り込みが危険に。危険度8.8で、2.56.0以降への更新が必要です。

AIや機械学習の大規模な計算を支える分散処理フレームワーク「Ray(レイ)」の脆弱性が、実際の攻撃に使われていると米政府機関CISAが認定しました。2026年8月17日、CISAが公開する「実際に攻撃されている脆弱性リスト(KEV)」CVE-2025-62593が追加され、米国の政府機関には8月20日という3日後の是正期限が課されました。

今回やっかいなのは、狙われるのがサーバーではなく開発者本人のパソコンだという点です。Rayを起動したまま、FirefoxかSafariで攻撃者の用意したページを開く。あるいは、そのページに仕込まれた広告を表示してしまう。それだけで、手元のパソコン上で攻撃者のプログラムが動きます。クリックも入力も、警告ダイアログの承認も要りません。修正版は2025年11月に出た2.52.0で、2026年8月時点の最新は2.57.0です。

そして、更新しただけでは終わりません。Rayには「管理画面とジョブ投入の窓口に認証をかけない」という設計上の問題が3年近く放置され、そこを突くボットネットが今も動いています。この記事では、今回KEVに載ったCVE-2025-62593の中身と、その背後にある本丸の問題、そして過去にRayで見つかった脆弱性をまとめて整理します。

項目内容
管理番号CVE-2025-62593
対象ソフトRay(AI分散処理
フレームワーク)
影響を受ける版2.52.0 より前
修正版2.52.0
(最新は 2.57.0)
危険度CVSS 9.4 / 10(開発元判定)
CVSS 8.8 / 10(NVD判定)
脆弱性の種類コード注入・リクエスト偽造
(CWE-94/CWE-352)
攻撃の前提Rayを起動した端末で
悪意あるページを開くこと
対象ブラウザFirefox/Safari
(Chromeは対象外)
悪用の確認あり(2026-08-17 KEV収載)
是正期限 2026-08-20
Rayの規模GitHub 4万スター超
ネット露出 23万台超

誰が仕掛け、手元のパソコンで何をされるのか

この穴に手を伸ばすのは、AIや機械学習を扱う会社のエンジニアを、その人が使っているパソコンごと乗っ取りたい相手です。企業のサーバーを正面から攻めるより、開発者の端末を1台押さえるほうが早い、という発想です。開発者の手元には、クラウドの鍵、社内システムへの接続情報、書きかけのソースコード、学習中のモデルが揃っています。仕掛けは、ごく普通のウェブページか、広告枠に紛れ込ませた広告。標的が特定の会社なら、その社員が見そうな技術記事風のページを用意することもできます。

ページが開かれると、裏側でそのパソコンの中で動いているRayに命令を送り込み、好きなコマンドを実行させます。パソコンの持ち主から見えるのは、ただのウェブページです。ダウンロードもインストールも起きないので、「怪しいファイルは開いていない」という自覚は何の防御にもなりません。実行される権限は、Rayを起動した本人の権限そのものです。

被害はその1台では止まりません。開発者の端末から社内のRayクラスタや学習サーバーへ横に広がれば、学習データやモデルの持ち出し、モデルへの細工、クラウド課金の悪用へとつながります。エンドユーザーの側から見ると、自分が使っているサービスの中身を作っている環境が汚染される、という形で影響が回ってきます。だからこそ、後述する「更新」と「認証を自分で入れる」の両方が必要になります。

サイトを開いただけで乗っ取られる仕組み

CVE-2025-62593: ブラウザ経由でRayを操られる

Rayを起動すると、その端末の中に管理画面(ダッシュボード)が立ち上がります。標準の待ち受け先はlocalhost:8265です。ここには/api/jobs/api/job_agent/jobs/という窓口があり、「このコマンドを実行して」と投げると、そのまま実行してくれます。認証はかかっていません。

本来、ブラウザで開いているページから、同じパソコンの中の別のプログラムへ勝手に命令を送ることはできません。「同一生成元ポリシー」という、ブラウザが守っている基本ルールがあるためです。今回の攻撃は、このルールを2段階で回避します。

1段目はブラウザの身元詐称です。Rayは「ブラウザからの要求は弾く」という簡易的な守りを入れていましたが、その判定方法が「通信に添えられるソフト名(User-Agent)が Mozilla で始まっていたら拒否する」というものだけでした。開発元の脆弱性情報によると、FirefoxとSafariではウェブページ側からこのソフト名を書き換えられるため、Mozillaで始まらない名前に差し替えるだけで守りをすり抜けられます。Chromeは仕様の実装差によってこの書き換えができず、対象から外れています。

2段目がDNSリバインディングです。これは、ウェブサイトの住所(ドメイン名)を実際のサーバー番地(IPアドレス)に変換する仕組みを悪用する古典的な手口で、攻撃者が自分のドメインの変換先を途中で127.0.0.1(自分自身)に切り替えます。ブラウザから見ると住所は変わっていないので「同じサイトの中の通信」と判定され、結果としてページのスクリプトが、そのパソコンの中のRayと直接やり取りできる状態になります。手口の検証には、セキュリティ企業NCC Groupが公開しているDNSリバインディング検証ツール「Singularity」が使われました。

この2つが噛み合った結果、ページを開いた瞬間に、Windows・macOS・Linuxのいずれでもコマンドが実行できることが実証されました。発見の端緒はイスラエルのセキュリティ企業Oligo SecurityのAvi Lumelsky氏によるソフト名書き換えの指摘で、DNSリバインディングを組み合わせた実証コードの作成と開発元への報告は、当時Socket社に在籍していたJonathan Leitschuh氏が行っています。Leitschuh氏は2019年にZoomのMac版が抱えていた隠しWebサーバーの問題を公表した研究者でもあり、「ローカルで待ち受けている開発ツールが、ブラウザ経由で外から叩かれる」という同じ型の問題を追い続けている人物です。開発ツールがローカルで口を開けている危うさは、Jupyter Serverで見つかった偽サイト誘導の脆弱性にも通じます。

危険度は、開発元の申告で10点満点中9.4点(重要度「緊急」)、米国立標準技術研究所NVDの再評価では8.8点(重要度「高」)です。差が出ているのは「利用者がページを開く」という前提の重み付けの違いで、実質的な影響は同じ、乗っ取りです。

なぜ9か月前の脆弱性が、いま「攻撃されている」扱いになったのか

CVE-2025-62593が公表されたのは2025年11月26日です。KEV収載までに9か月近い間があり、CISAは今回、収載の根拠を具体的に公表していません。ただ、公開情報をたどると、この脆弱性がすでに攻撃コードに組み込まれていた事実は確認できます。

セキュリティ企業Bitsightが2026年3月11日に公開したボットネット「RondoDox」の分析レポートに、CVE-2025-62593が登場します。RondoDoxは2025年5月25日から2026年2月16日までに174種類の攻撃コードを使い分け、148件のCVEに対応、1日あたり最大1万5,000回の攻撃試行を記録した、ネット上の機器を手当たり次第に狙うボットネットです。その武器庫のなかに、Rayを狙う一本が含まれていました。

興味深いのは、その実装が失敗している点です。同レポートの著者João Godinho氏は、RondoDoxのRay向け攻撃コードがソフト名をMozilla/5.0 (rondo2012@atomicmail[.]io)という値に設定していると指摘し、次のように書いています。

「RondoDoxが使っている攻撃コードは、User-Agentをわざわざ Mozilla/5.0 (rondo2012@atomicmail[.]io) に設定しており、これでは攻撃が成立しない」(Bitsight, 2026年3月11日

Rayの守りは「Mozillaで始まっていたら拒否」なので、攻撃側がわざわざMozillaで始まる名前を名乗ってしまい、自分から弾かれているわけです。連絡先メールアドレスを名前欄に入れる行儀の良さが仇になっている、という珍しい例です。ただし、これを「だから安全」と読むのは間違いです。この失敗はRondoDoxという特定のボットネットの実装ミスに過ぎず、ソフト名を1文字変えれば成立します。無差別にネットを走査する攻撃コードに載った時点で、この脆弱性は「知られていて、試されている」段階に入っています。

なお、今回課された8月20日という期限は、CISAが従来のBOD 22-01に代えて運用しているBOD 26-04という指令によるものです。KEVに載った全件を一律の日数で扱うのをやめ、4つのリスク条件をすべて満たしたものは3日以内という最短枠が適用されます。今回のRayはその最短枠に入りました。日本の民間企業に法的な拘束力はありませんが、「米政府が3日で直せと言った案件」という優先度の目安としては十分使えます。KEVに載った脆弱性の全件は、CISA KEVの日本語ダッシュボードで検索できます。

本丸は別にある、23万台がインターネットに露出している

CVE-2025-62593は、より大きな問題の枝葉にあたります。根っこにあるのは「Rayのジョブ投入APIには認証がない」という、開発元が長年「仕様」として扱ってきた設計です。

CVE-2023-48022: 認証なしのジョブ投入API(修正予定なし)

2023年に報告されたCVE-2023-48022は、Rayのダッシュボードとジョブ投入APIが誰の認証も求めないため、そこに到達できれば誰でもコマンドを実行できる、という指摘です。Rayの開発元はこれを脆弱性ではなく「信頼できるネットワーク内で使う前提の仕様」と位置づけ、修正しない方針を取りました。CVE番号としては「係争中(disputed)」の扱いで登録されています。

問題は、その前提が現実で守られていないことです。Oligo Securityは2024年3月に、この設計を突いて世界中のRayクラスタが乗っ取られていた攻撃キャンペーン「ShadowRay」を公表しました。そして2025年11月、同社は続編にあたる「ShadowRay 2.0」を報告しています。

✓ ShadowRay 2.0 で確認された事実

  • インターネットから見えるRayクラスタは23万台超。2024年3月時点の約10倍(Oligo Security
  • 「IronErn440」を名乗る攻撃者が、乗っ取ったクラスタから隣のクラスタへ自動的に感染を広げる仕組みを構築
  • 用途は仮想通貨モネロの採掘(XMRig)、認証情報・ソースコード・AIモデルの持ち出し、そしてDDoS攻撃
  • 検知を避けるためCPU使用率を6割に抑え、処理名をOSの内部処理に偽装。攻撃コードの一部はAIに書かせたと見られる特徴(不要な説明文や冗長な処理)を含む
  • 年間400万ドル相当の計算資源を持つクラスタが乗っ取られていた例も確認

日本語訳

攻撃者が、AIフレームワークRayの2年前の認証の欠陥(CVE-2023-48022)を悪用し、NVIDIAのGPUクラスタを乗っ取って「ShadowRay 2.0」と呼ばれる自己増殖型の仮想通貨採掘ボットネットを動かしている。この不具合は仕様として未修正のままで、23万台を超えるRayサーバーが外部から見える状態にある。

日本語訳

新たなShadowRay攻撃が、Rayクラスタを仮想通貨の採掘機に変えている。攻撃コードの中身を調べた研究者は、攻撃者が8コア以上かつ管理者権限のある環境を「とてもいい子だ」と表現している箇所を見つけた。

CVE-2025-34351: 認証機能はできたが、初期設定では切れている

ShadowRay 2.0の公表から3日後の2025年11月21日、Rayは待望のトークン認証を搭載した2.52.0を公開しました。開発元Anyscaleは発表記事で「Rayに安全な初期設定が来る。これはその最初の大きな一歩だ」と述べています。

ところが、Rayの公式ドキュメントには、こう明記されています。

「認証はRay 2.52.0では初期設定で無効です。Rayは将来のリリースでトークン認証を初期設定で有効にする予定です」(Ray公式ドキュメント

つまり、2.52.0以降に更新しただけでは、認証はかかりません。使う側が環境変数RAY_AUTH_MODE=tokenを設定して、自分で有効にする必要があります。この「機能はあるが初期状態で切れている」という状態に対して、Leitschuh氏は別途CVE-2025-34351という番号を取り、危険度10点満点中10点として2025年11月26日に公表しました。修正版は存在しません(設定で対応するしかないため)。2026年8月時点の最新2.57.0のリリースノートを見ても、初期設定を有効側に切り替えた記載はありません。

AI基盤のツールで「認証が初期状態で無効」が事故につながる構図は、Rayに限りません。学習データ基盤でもFeastで認証なしの乗っ取りが相次いで報告されています。使う部品の初期設定がどうなっているかは、OSS サプライチェーン スキャナーの考え方と合わせて一度棚卸ししておく価値があります。

自分の環境は危ないか、バージョンと使い方の早見表

まず pip show ray で今のバージョンを確認してください。そのうえで、下の表で自分の状況を探します。

使っているバージョン手元のPCで
Rayを起動する
サーバーで
クラスタを運用
外部データを
読み込む
2.52.0 より前危険・最優先
CVE-2025-62593
危険
認証も未搭載
危険
CVE-2026-57516
2.52.0 〜 2.54.x対策済み要設定
認証は初期状態で無効
危険
CVE-2026-41486ほか
2.55.x対策済み要設定
認証は初期状態で無効
危険
CVE-2026-57516
2.56.0 以降対策済み要設定
認証は初期状態で無効
対策済み
Ray未使用影響なし影響なし影響なし

CVE-2025-62593については、使っているブラウザによっても状況が変わります。ローカルでRayを立ち上げたまま普段のブラウジングをしている人ほど、影響が大きくなります。

ブラウザCVE-2025-62593 の影響理由
Firefox対象ページ側からソフト名を
書き換えられる
Safari対象同上
Chrome / Edge対象外実装差により
書き換えができない

ただし、Chromeを使っていれば安全という話ではありません。ブラウザ側の実装差にたまたま助けられているだけで、Ray側の守りが薄い事実は変わりません。ブラウザは防御ではなく、更新が防御です。

いま何をすべきか

優先度の高い順に4つあります。1番と2番はセットで、片方だけでは不十分です。

対応の手順

  • 1最新版へ更新する。pip install --upgrade ray で2.57.0へ。これでCVE-2025-62593・CVE-2026-57516・CVE-2026-41486がまとめて解消します。
  • 2トークン認証を自分で有効にする。クラスタの起動前に環境変数 RAY_AUTH_MODE=token を設定します。更新しただけでは有効になりません。ここを飛ばすと、ShadowRayが今も突いている入口が開いたままです。
  • 3ダッシュボードを外に出さない。8265番ポートがインターネットから見える状態になっていないか確認します。クラウド上に立てたまま忘れている検証環境が、23万台の内訳の多くを占めます。
  • 4使っていないときは止める。手元のパソコンでの開発では、Rayを起動したまま普段のブラウジングをしないだけでも、今回の経路はふさげます。

すでに乗っ取られていないかを確かめるなら、見るべきは身に覚えのないジョブの実行履歴、CPUやGPUの不自然な使用率、15分おきに外部へ通信する定期実行の設定(cron)です。ShadowRay 2.0では、攻撃コードが15分ごとにGitLabやGitHubから更新される仕組みが使われていました。採掘プログラムはCPU使用率を6割に抑えて動くため、「100%に張り付いていないから大丈夫」とは判断できません。

ここまでの経緯

← スワイプで移動

Rayで見つかっている脆弱性の一覧

この記事で扱っている5件を、直すべき順に並べます。

管理番号中身危険度対処
CVE-2025-62593サイト閲覧で
開発者PCを乗っ取り
9.4
攻撃確認あり
2.52.0 以降へ
CVE-2023-48022ジョブ投入APIに
認証がない
係争中
攻撃確認あり
修正予定なし
認証設定で対応
CVE-2025-34351認証が初期設定で
無効のまま
10.0修正版なし
RAY_AUTH_MODE=token
CVE-2026-57516不正なデータセット
(.tar)の読み込み
8.82.56.0 以降へ
CVE-2026-41486Parquetファイルの
読み込み
2.55.0 以降へ

データを読み込むだけで乗っ取られる脆弱性

ここからは、2026年に入って見つかった別系統の欠陥です。ブラウザも認証も関係なく、外から持ってきたデータをRayで読み込む操作そのものが引き金になります。

CVE-2026-57516: 学習データの.tarを読み込んだ瞬間に実行される

原因は、データを読み込むときの「復元処理」が中身を信用しすぎている点にあります。プログラムの世界では、データを保存・送信するためにいったん固めた形から、使える形に戻す処理(デシリアライズ)がよく使われます。この戻す処理に細工したデータを渡すと、任意のプログラムが動いてしまうことがあり、Pythonの「pickle(ピクル)」という仕組みは特にこの危険で知られています。

開発元の脆弱性情報によると、Rayのread_webdataset()は、初期設定の読み込み処理で、ファイルの拡張子に応じて中身を無検証のまま復元していました。具体的には、.pickle.pklファイルはそのままpickleで復元し、.pt.pthファイルはtorch.load()で(安全確認を無効にした状態で)読み込みます。どちらも細工されていれば、その瞬間に攻撃者のプログラムが走ります。危険度は10点満点中8.8点、修正版は2.56.0です。

やっかいなのは、この復元がデータを本格的に使い始める前に発動する点です。.take_all().iter_batches()のような、データをひと通り取り出すごく普通の操作をしただけで実行されてしまいます。開発元は、悪意ある.tarの配布経路として、設定ミスで書き込み可能になったS3、ネット公開のWebDataset置き場、Hugging Face Hubのデータセットミラー、画像認識でよく使われるモデル配布物(model zoo)のtarファイルなどを挙げています。いずれも、AI開発で日常的に触れる場所です。pickle形式のファイルがなぜ危険なのかは、AIモデルの危険コードを検査するツール「picklescan」の脆弱性の記事でも詳しく触れています。

この経路には「攻撃者が用意した不正なデータセットを、利用者が読み込む」という前提があります。信頼できる自前のデータしか読み込まない運用なら、影響は受けにくくなります。ただし、AI開発では公開データセットや他者が作ったモデルを取り込むのはごく当たり前の作業です。信頼していた配布元が乗っ取られていたり、ミラーに偽物が紛れ込んでいたりする可能性は常にあります。外から取り込むデータやモデルは「実行され得るプログラム」だと考えて扱うのが基本姿勢です。

CVE-2026-41486: Parquetファイルの読み込みでも同じ穴

CVE-2026-57516は単発の事故ではありません。その直前のCVE-2026-41486は、Parquetという別のデータ形式を読み込むときに、中身をcloudpickleでそのまま復元してしまう欠陥でした。修正版は2.55.0です。形式こそ違え、「外から来たデータを、実行され得る形のまま復元する」という同じ根っこから生まれています。

エンジニアの目で見れば、これはRay固有の問題というより、pickleやtorch.loadのような「便利だが危険な復元の仕組み」を、データ読み込みの各経路で使い続けていることの表れです。1つの読み込み経路を直しても、別の形式の経路に同じ危険が残りやすいため、同系統の脆弱性が繰り返し出てきます。同じAI基盤では、特徴量ストアFeastでも安全でない復元処理による乗っ取りが起きており、この「復元処理の危うさ」はAI開発ツール全体に共通する弱点です。実務的な対処は、取り込むデータやモデルの供給元を限定し、可能なら安全な読み込み方式に切り替え、学習処理をネットワークやファイルへのアクセスを絞った隔離環境で動かすことに尽きます。

Rayとは何のツールか

Rayは、Pythonで書いたプログラムやAIの処理を、1台のパソコンから多数のサーバーへ簡単に広げて動かせるようにするオープンソースの基盤です。カリフォルニア大学バークレー校で生まれ、現在はAnyscale社が中心となって開発しています。大量のデータを使うAIの学習や、モデルを本番で動かす処理を、複数のサーバーに分散して効率よく回す役割を担います。

利用は非常に広く、GitHubのスター数は4万を超え、週あたりのダウンロードは1,000万回を超えます。OpenAIはChatGPTの学習の調整にRayを使ったとされ、Uber、Spotify、Netflix、ByteDanceなど、名の知れた企業のAI基盤で使われています。GPUを積んだ高価なサーバーを束ねて動かす性質上、乗っ取ったときの旨みが大きく、攻撃者から見て割の良い標的になっています。ShadowRay 2.0で年間400万ドル相当の計算資源を持つクラスタが狙われたのも、この構図によるものです。

まとめ

CVE-2025-62593は、Rayを起動したまま悪意あるページをFirefoxかSafariで開くだけで、開発者のパソコン上でプログラムを実行される脆弱性です。2026年8月17日にCISAが「実際に攻撃されている脆弱性リスト」へ追加し、米政府機関には8月20日という3日後の是正期限が課されました。修正版は2.52.0、最新は2.57.0です。

ただし、Rayについては更新だけでは足りません。ジョブ投入APIに認証がないという設計上の問題は「仕様」として残されたままで、そこを突くボットネットが23万台超の露出したクラスタを走査しています。2.52.0で追加されたトークン認証は、いまも初期設定では無効です。更新したうえで、環境変数を1つ設定して認証を自分で有効にする。Rayを使っている人がいま確実にやるべきことは、この2つです。まずは pip show ray で手元のバージョンを確認するところから始めてください。

参照元

avatar-m-1

Backend Engineer / AWS / Django / Go