コラム

Column

導入事例

Case Study

サイバーニュース

Cyber News

海外のサイバーセキュリティ関連のニュースを日本語でご紹介しています。

お知らせ

News

Ruby on Railsに緊急脆弱性、画像アップロードからサーバー内の秘密情報が漏えいする恐れ

Ruby on Railsのファイル管理機能「Active Storage」に、認証を受けていない攻撃者が細工した画像ファイルを送信し、サーバー内のファイルを読み取れる可能性がある脆弱性が確認されました。認証情報や秘密鍵が漏えいした場合、遠隔からのコード実行や関連システムへの侵入につながる恐れがあります。Rails利用組織には、修正版への更新と秘密情報の変更が求められます。

The Hacker News:Critical Rails Flaw Could Let Unauthenticated Attackers Read Server Files via Image Uploads

CyberCrewのペネトレーションテストを
詳しく知る
CyberCrewへのお問い合わせ・
無料見積もりはこちら

この記事のポイント

影響のあるシステム

  • Ruby on RailsのActive Storageで、画像処理エンジンにlibvipsを使用しているアプリケーション
  • 信頼できない利用者から画像ファイルを受け付けるWebサービスや業務システム
  • Rails 7.0.0から7.2.3.1までの環境
  • Rails 8.0.0から8.0.5までの環境
  • Rails 8.1.0から8.1.3までの環境
  • Active Storageの画像処理にVipsを明示的に設定しているRails 6.0.0から6.1.7.10までの環境
  • 必要な画像処理ライブラリが含まれるDebian、Ubuntu、Railsが生成したDocker環境など
  • MiniMagickを使用している環境は、今回報告された特定の攻撃経路の影響を受けないとされています。

推奨される対策

  • Rails 7系は7.2.3.2以降、Rails 8.0系は8.0.5.1以降、Rails 8.1系は8.1.3.1以降へ更新する
  • libvipsを8.13以降へ更新する
  • ruby-vipsを使用している場合は2.2.1以降へ更新する
  • secret_key_base、Railsのマスターキー、データベースのパスワード、クラウドストレージの認証情報、APIトークンなどを変更する
  • 直ちにRailsを更新できない場合は、libvips 8.13以降でVIPS_BLOCK_UNTRUSTEDを設定する
  • ruby-vips 2.2.1以降を使用している場合は、initializerからVips.block_untrusted(true)を呼び出す
  • Railsが公開したフォレンジックツールを利用し、影響を受けていた期間や不審な画像処理記録を調査する

上記の対策は、元記事の事実に基づき日本の読者向けに整理したものです。修正版の導入だけでは、更新前に読み取られた可能性がある秘密情報を無効化できないため、認証情報の変更も必要です。

この記事に出てくる専門用語

  • CVE-2026-66066:Ruby on RailsのActive Storageに確認された脆弱性へ付与された共通脆弱性識別子です。
  • CVSS:脆弱性の深刻度を数値化する評価方式です。今回の脆弱性はCVSSで9.5と評価されています。
  • Active Storage:画像や文書などのファイルを、ローカル環境やクラウドストレージへ保存・管理するRuby on Railsの機能です。
  • libvips:画像の変換、解析、サイズ変更などに使用される画像処理ライブラリです。
  • ruby-vips:Rubyアプリケーションからlibvipsを操作するためのライブラリです。
  • 任意ファイル読み取り:攻撃者が本来アクセスできないサーバー内のファイルを指定し、その内容を取得できる状態です。
  • RCE:Remote Code Executionの略で、攻撃者が対象システム上で任意のプログラムや命令を実行できる状態です。
  • PoC:Proof of Conceptの略で、脆弱性を実際に悪用できることを示す検証用コードや手順です。
  • 秘密情報のローテーション:漏えいした可能性があるパスワード、秘密鍵、トークンなどを失効させ、新しい値へ変更する対応です。

画像アップロードがサーバー内の情報漏えいにつながる仕組み

CVE-2026-66066は、Ruby on RailsのActive Storageと、画像処理に使用されるlibvipsの境界で発生する問題です。libvipsは一般的な画像形式だけでなく、外部ライブラリを利用して多数のファイル形式を処理できます。その中には、信頼できない入力を安全に処理できることが十分に確認されていない操作も含まれています。脆弱なActive Storageは、こうした操作を無効化しないまま、利用者がアップロードしたファイルをlibvipsへ渡していました。

報告された攻撃方法では、攻撃者がMATLAB形式を装ったHDF5ファイルを作成し、アップロード時のファイル種別をimage/pngと申告します。Active Storageの直接アップロード機能では、クライアントから送られたcontent_typeが使用されるため、実際には画像ではないファイルが画像として登録される可能性があります。その後、libvipsがファイル内部の情報から形式を判断し、HDF5に含まれる外部ファイル参照を処理すると、攻撃者が指定したサーバー上のファイルが読み込まれる可能性があります。

読み取られたファイルの内容は、生成された画像の画素データとして攻撃者へ返されると報告されています。このため、通常の画像アップロードやプロフィール画像の登録機能であっても、バックエンドでActive StorageとVipsを使用していれば確認が必要です。専用のサムネイル作成画面を公開していないことだけでは、安全とは判断できません。Railsの公式アドバイザリも、画像のバリエーション生成機能を個別に公開していることは、脆弱性成立の必須条件ではないと説明しています。

ファイルの読み取りからシステム侵害へ発展する危険性

この脆弱性によって直ちにすべてのRailsサーバーで任意のプログラムが実行されるわけではありません。しかし、任意ファイルの読み取りに成功すると、Railsプロセスから参照できる環境変数や設定ファイルが攻撃者に取得される可能性があります。対象には、セッションや署名の生成に使用されるsecret_key_base、暗号化された認証情報を復号するRailsのマスターキー、データベースの接続情報、S3やGoogle Cloud Storage、Azureなどのストレージ認証情報、外部サービスのAPIトークンが含まれる可能性があります。

これらの秘密情報が漏えいすると、攻撃者は正規のアプリケーションになりすまして署名付きデータを作成したり、接続先のデータベースやクラウド環境へアクセスしたりする可能性があります。Ethiackが公開した検証では、ファイル読み取りによってsecret_key_baseを取得した後、別の脆弱性であるCVE-2025-24293と組み合わせ、Rubyコードの実行へ発展させる攻撃経路が示されています。一方、第三者が公開した別のPoCについては、The Hacker Newsが独自に検証していないと説明しています。

重要なのは、Railsの更新だけで対応を完了したと判断しないことです。アップデートは今後のファイル読み取りを防ぐための措置ですが、更新前に取得された認証情報を無効にする効果はありません。影響を受ける構成で稼働していた場合は、secret_key_base、マスターキーとそれによって復号される情報、データベース認証情報、ストレージサービスのキー、第三者サービスのトークンを漏えいした可能性がある情報として扱い、変更する必要があります。

国内組織が確認すべき更新状況と侵害の痕跡

最初に確認すべきなのは、Railsのバージョンだけではありません。Active Storageが使用されているか、画像処理エンジンがVipsに設定されているか、外部利用者が画像をアップロードできるか、libvipsがどの外部ライブラリと連携しているかを確認する必要があります。Rails 7.0以降ではload_defaults 7.0によってVipsが選択され、その後のデフォルト設定でも維持されています。Rails 6系についてはVipsが標準設定ではありませんでしたが、明示的に設定している場合は影響を受ける可能性があります。

根本的な対策は、Rails 7.2.3.2、8.0.5.1、8.1.3.1、またはそれ以降の修正版へ更新することです。Rails 7.1以前はサポートが終了しており、この問題に対する修正のバックポートは提供されないと説明されています。そのため、古いRailsを使用している組織は、Active Storageだけを部分的に修正するのではなく、サポート対象となるRails 7.2.3.2以降への移行を検討する必要があります。また、修正版ではlibvips 8.13以降が必要であり、古いlibvipsを残したままRailsだけを更新する対応では不十分です。

Railsは、過去に脆弱な状態で稼働していた期間や、実際に悪用された可能性を調査するためのフォレンジックツールも公開しています。このツールでは、アプリケーションの構成や依存関係から影響期間を整理し、Active Storageの記録やオブジェクトストレージを調査して、不審なアップロードや生成済みファイルを確認できます。元記事の更新時点では、Rails Security Teamは実際の悪用や悪用の試みを把握していないとしていますが、信頼できる被害件数や脆弱なアプリケーション数も判明していません。公表された被害がないことを安全の根拠とせず、自社環境の構成確認、更新、認証情報の変更、ログと保存ファイルの調査を並行して進めることが重要です。

参考文献・記事一覧

投稿者プロフィール

CyberCrew(サイバークルー)
CyberCrew(サイバークルー)
CyberCrew(サイバークルー)は、企業の情報セキュリティをトータルで支援する専門チームです。高度なスキルを持つホワイトハッカーが在籍し、サイバー攻撃の監視・検知から初動対応、リスク診断や従業員向けのセキュリティ教育まで、幅広いサービスを提供。企業のニーズに応じた柔軟な対応で、安心・安全なIT環境の実現をサポートします。

■ 情報セキュリティサービス台帳登録事業者

■ セキュリティコンテスト受賞歴
CTF国際大会 世界No.1
CEH Master Leaderboard 世界No.1
Hack The Box Rank TOP10

■ 保有セキュリティ資格
GIAC GXPN、Cisco Cybersecurity Specialist、CEH Master、CEH Practical、
Cyber Security Professional Certificate、OSCP、OSCP+、CPENT、OSWP、
eCPPT、eMAPT、CRTS、SOC-100、PEN-100、
HTB Offshore Penetration Tester(Level 3)
CyberCrewのペネトレーションテストを
詳しく知る
CyberCrewへのお問い合わせ・
無料見積もりはこちら

弊社サービスをご利用いただいたお客様の声

KPMG Baltics OÜの導入事例紹介 ダークウェブ調査の効率化で、より実践的なRed Team活動へ

kpmg

KPMG Baltics OÜのRed Team LeadがALIENGATE Dark Web Intelを評価。API・設定管理の負担軽減、ダークウェブ調査の効率化、Red Team活動への活用可能性について寄せられた製品レビューをご紹介します。

事例の詳細を見る

ニッポンインシュア株式会社の導入事例紹介 大規模リニューアルのリリース判断を支えたセキュリティリスクの客観的な整理

ニッポンインシュア株式会社

Cloud Insureの大規模リニューアルに伴い、CyberCrewのセキュリティ診断・ペネトレーションテストを導入したニッポンインシュア株式会社様の事例をご紹介します。

事例の詳細を見る

ソースネクスト株式会社の導入事例紹介 決め手はコスパと柔軟性、投資対効果の高いセキュリティ検証

ペネトレーションテスト

ソースネクストの導入事例。圧倒的なコストパフォーマンスと、準備工数を最小限に抑えた柔軟なペネトレーションテストの成果を公開。

事例の詳細を見る

株式会社ハンモックの導入事例紹介 安心感をもたらしたペネトレーションテスト活用

ペネトレーションテスト

株式会社ハンモックにおけるペネトレーションテストの導入事例です。ペネトレーションテストを活用し、安心感のあるセキュリティ対策を実現した取り組みをご紹介します。

事例の詳細を見る

▲
Page Top