Active Storageフレームワークに存在する重大な脆弱性により、未認証の攻撃者がRailsアプリケーションから任意のファイルを読み取ることが可能となり、さらにはリモートコード実行(RCE)にまで発展する恐れがあります。
Railsは、Rubyで書かれた人気のオープンソースのWebアプリケーションフレームワークで、Webサイトやアプリの構築に使用されています。ファイルのアップロードや添付ファイルの処理には、Railsに組み込まれたコンポーネントであるActive Storageが使われています。
Railsのメンテナーは、CVE-2026-66066の脆弱性に関する勧告を公開しました。この脆弱性は「重大(Critical)」の深刻度評価を受けています。
Active Storageは、libvipsやImageMagickといった画像処理ライブラリを使用して、アップロードされたメディアから画像のサムネイルを生成する機能も備えています。
セキュリティ情報によると、CVE-2026-66066はlibvipsを使用している場合に悪用可能で、攻撃者が細工した画像を脆弱なアプリケーションにアップロードすることで、サーバー上の任意のファイルを読み取ることができます。
この攻撃が成立するもう一つの条件は、サーバーが信頼できないユーザーからの画像アップロードを許可していることです。
これらの条件が揃うと、攻撃者はアプリケーションのファイルにアクセスできるようになります。これには通常、データベースやクラウドストレージ、その他のサービス用の認証情報を含む「secret_key_base」やプロセス環境変数も含まれます。
CVE-2026-66066は、7.2.3.2より前のActive Storage、8.0.5.1より前の8.0.x、8.1.3.1より前の8.1.xに影響します。
Rails 6.xについては、Active Storageがデフォルトとは異なる設定で構成されている場合にのみ影響を受けます。
Railsチームは、libvips 8.13以降へのアップグレードと、「secret_key_base」(Railsのマスターキー)、データベースの認証情報、Active Storageサービスの認証情報、その他アプリケーションプロセスからアクセス可能なあらゆる機密情報のローテーションを推奨しています。
libvips 8.13以降を実行しているシステムでは、管理者はVIPS_BLOCK_UNTRUSTED環境変数を設定するか、ruby-vips 2.2.1以降を使用している場合はVips.block_untrusted(true)を呼び出すことで、脆弱な機能を一時的に無効化できます。
libvips 8.13より前のバージョンを使用しているアプリには、回避策は存在しません。
ImageMagickの利用者は、この攻撃経路の影響を受けません。しかし、libvipsはRailsの公式Dockerイメージ、およびDebianやUbuntuの環境ではデフォルトのプロセッサとなっています。
Railsチームは、利用者がアップデートを適用する時間を確保できるよう、悪用のリスクを低減するために意図的に技術的な詳細を伏せていたと述べています。
技術的な詳細の全容は当初、Railsフォーラムで8月28日に公開される予定でした。
しかし、一般に利用可能な概念実証(PoC)エクスプロイトが非常に早い段階で出回ったため、メンテナーは詳細情報の全容およびフォレンジック調査用ツールを公開することを決定しました。
この脆弱性は、EthiackおよびGMO Flatt Security Inc.の研究者によって発見され、Railsチームに責任を持って報告されました。
セキュリティ企業のAkamaiも、CVE-2026-66066に関する警告を公開しており、この攻撃チェーンを「KindaRails2Shell」と名付け、そのRCEの可能性について注意を呼びかけています。
「secret_key_baseが漏洩すると、攻撃者はアプリケーションの暗号化のマスターキーを手中に収めることになります」とAkamaiは説明しています。
「攻撃者はセッションクッキーを偽造したり、グローバルIDに署名したり、シリアライズされたデータを操作したりできるようになり、これは基盤となるサーバー上での完全なRCEに直結します」
Akamaiは、一般公開前にEthiackと連携して顧客向けの保護対策を準備したとしており、現在はWebアプリケーションファイアウォール(WAF)による保護機能をリリース済みです。
Ethiackは、WAFによって管理者が多少の時間を稼げる可能性はあるものの、AIツールを使う攻撃者であればパッチの差分をもとに攻撃チェーンを再構築できるはずだと指摘しています。
攻撃者に先んじて、あらゆるレイヤーをテストする
セキュリティチームが記録できている攻撃成功件数はわずか54%、アラートが上がるのはたった14%に過ぎません。残りは環境内を検知されないまま通過しています。
Picusのホワイトペーパーでは、侵害・攻撃シミュレーション(breach and attack simulation)がSIEMやEDRのルールをどのようにテストし、脅威の見逃しを防ぐかを解説しています。