KindaRails2Shell、Ruby on RailsアプリケーションをCVE-2026-66066で脅かす

ウェブサイトやウェブアプリケーション構築で最も広く使われているフレームワークの一つであるRuby on Rails(通称Rails)に、深刻なセキュリティ脆弱性(CVE-2026-66066)が見つかりました。攻撃者がサーバー上の機密ファイルを読み取ったり、場合によってはサーバーを完全に制御下に置いたりできる恐れがあります。

Image

この脆弱性を発見した研究者らは「KindaRails2Shell」と名付けました。この欠陥を利用すると、攻撃者はウェブサイトの画像アップロード機能をすり抜けて罠を仕込んだファイルを送り込み、それを足がかりにサーバーの機密情報をこじ開けることができます。

CVE-2026-66066について

多くのウェブサイトでは、画像をアップロードすると、リサイズされたバージョンを表示してくれる機能があります。Railsではこれを「Active Storage」という組み込みツールで処理しており、リサイズ処理には「libvips」という画像処理ライブラリを利用しています。

問題は、libvipsが通常の画像ファイル以外にも様々な形式を開ける機能を持っている点にあります。libvipsはMATLABの.matファイル、NIfTI医療スキャン、SVGやPDFファイルといった、あまり一般的ではない科学・専門分野向けのファイル形式まで読み込んでしまいます。

これらの形式の一部を開く際にlibvipsが使用するツールは、見知らぬ相手から送られてきたファイルに対して実行するには安全とは言えないものですが、Railsはこれらの機能を無効化していませんでした。そのため攻撃者は、一見無害な画像に見えるファイルを細工しておき、サーバーがそのサムネイルを生成しようとした際に、攻撃者が指定した任意の情報をひそかに読み取らせることができてしまいます。

Railsのコアチームメンバーは次のように説明しています。「デフォルト設定では、画像のバリアント(派生版)を表示するRailsアプリケーションにおいて、認証を受けていない攻撃者がプロセス環境を含むサーバー上の任意のファイルを読み取れてしまう可能性があります。この環境変数には通常secret_key_baseや外部システムの認証情報が含まれていることが多く、結果としてリモートコード実行やそれらのシステムへの横展開に発展する恐れがあります」

影響を受けるのは誰か

Railsベースのウェブサイトやアプリケーションを運用している場合、以下に該当すると影響を受けます。

  • アプリケーションがActive Storageをデフォルトの画像プロセッサー(「vips」と呼ばれる)で使用している(Rails 7以降、標準構成となっている)
  • アプリケーションが機能や直接アップロードを通じてユーザーによる画像アップロードを許可している
  • 影響を受けるActive Storageのバージョン、すなわち7.2.3.2より前の7.0系リリース、8.0.5.1より前の8.0系リリース、8.1.3.1より前の8.1系リリースのいずれかを使用している

Ethiackの研究者らは「Rails 6.0.0から6.1.7.10までは、Active Storageがデフォルト設定以外で構成されている場合にのみ影響を受ける可能性があり、通常の6.x系のインストール環境はこの脆弱性の影響を受けません」と指摘しています

「なお、画像アップロードを受け付けて後から処理済みバージョンを配信するようなユーザー向け機能(アバター、サムネイル、プロフィール画像など)であれば、いずれもこの脆弱性の影響を受ける可能性がある点にご留意ください。Ruby on Railsを使用する複数のプロジェクトやサードパーティ製ソフトウェアも影響を受ける可能性があります」

「vips」の代わりに代替プロセッサーの「ImageMagick」を使用するよう設定されたアプリケーションは影響を受けません。

発見と修正

CVE-2026-66066は、Ethiack研究チームのAndré Baptista氏、Bruno Mendes氏、Rafael Castilho氏によって最初に発見・報告され、その後GMO Flatt Security社の研究チームに所属するRyotaK氏によって独立に報告されました。

Railsは2026年7月29日、Railsバージョン7.2.3.2、8.0.5.1、8.1.3.1にて修正版をリリースしました。

影響を受けるユーザーには、これらのいずれかのバージョンへのアップグレード、libvipsのバージョン8.13以降への更新、そして念のためアプリケーションのマスターキー、データベース認証情報、ストレージサービス(S3、GCS、Azure)のキー、サードパーティサービスのトークンやキーのローテーションが強く推奨されています。

Railsチームは「libvips 8.13未満を使用している場合、アプリケーションからlibvipsへの依存を取り除く以外に有効な回避策はありません」と付け加え、libvips 8.13以降がシステムに存在する場合は「libvipsが初期化時に読み込むVIPS_BLOCK_UNTRUSTED環境変数を設定することで、Railsをアップグレードすることなく未検証(unfuzzed)の操作を無効化できます」と説明しています。

セキュリティベンダーのAkamaiは、公開前にEthiackと連携して顧客向けの保護策を準備したと述べており、現在はKindaRails2Shell攻撃を狙ったWebアプリケーションファイアウォール(WAF)ルールを展開済みです。

しかしAkamaiとEthiackの研究者はともに、WAFはパッチ適用の代わりにはならないと強調しています。

Akamaiは「WAF(Webアプリケーションファイアウォール)ルールは既知の攻撃パターンを検知・遮断できますが、最も効果的な防御策はベンダーが提供するパッチを速やかに適用し、侵害の可能性がある認証情報をローテーションすることです」と述べています。

検知とフォレンジックツール

RailsとEthiackのチームは当初、すべての人がパッチを適用する時間を確保できるよう、脆弱性の詳細やエクスプロイトコードの公開を控えていました。

しかし、他の研究者らがこの攻撃をリバースエンジニアリングし、公開後まもなく実証コード(PoC)を公開したため、Ethiackの研究者らは技術的な詳細解説記事の公開に踏み切りました。

Railsチームも、個人や組織が自分たちのRailsアプリケーションが攻撃にさらされていたかどうか、さらされていたとすればどのくらいの期間か、そしてこの欠陥に付け込まれてどのような機密情報にアクセスされたかを確認できる2つのエージェント向けスキルを公開しました

同リポジトリには、この攻撃の解説に加え、侵入の可能性を調査する方法を説明したドキュメントも含まれています。

現時点でCVE-2026-66066が実際に悪用されたという公開報告はありませんが、この欠陥の深刻さと、実用的なエクスプロイトの情報が出回り始めていることを踏まえると、影響を受けるユーザーは早急にパッチを適用し、調査を行うべきです。

翻訳元: https://www.helpnetsecurity.com/2026/08/03/kindarails2shell-cve-2026-66066-vulnerability/

ソース: helpnetsecurity.com