Ruby on Rails の脆弱性 CVE-N/A:悪意のイメージ・アップロードによるシークレットの窃取

Critical Ruby on Rails Flaw Could Let Hackers Steal Server Secrets Through Malicious Image Uploads

2026/11/04 CyberSecurityNews — Ruby on Rails の Active Storage に存在する深刻な脆弱性を悪用する未認証の攻撃者は、細工した画像をアップロードするだけで、サーバ上に任意のファイルを書き込ませることが可能になる。アップロードに Disk サービスを使用している場合には、サーバ上のファイルを読み取らせることもできる。Rails チームは、この脆弱性を CVSS 9.8 (Critical) と評価し、2026年11月4日にセキュリティアドバイザリを公開した。この脆弱性には、まだ CVE ID が割り当てられていない。

この脆弱性は、ImageMagick の動作に起因する。ImageMagick は、ファイル名ではなくファイルの内容に基づいて、coder (ファイル形式を処理するハンドラ) を選択するが、画像ファイル内で指定された別のファイルに対して操作を実行することもある。

Active Storage は、これらの coder の使用を制限していないため、ファイルが添付されると直ちに画像解析処理を実行してしまう。そのため、攻撃者は細工したファイルをアップロードして添付するだけでよく、variant/preview/analyze の各処理を明示的に呼び出す必要はない。

Ruby on Rails の重大な脆弱性

危険にさらされるファイルには、通常、secret_key_base や外部システムの認証情報などが含まれる。これらの情報を悪用する攻撃者は、リモートコード実行や、接続先の別のサービスへのアクセスを引き起こす可能性がある。Rails チームは、1つの攻撃チェーンが報告されていると説明しているが、それが唯一の攻撃手法であるとは考えていない。この脆弱性は、セキュリティ研究者の ryotak により、HackerOne を通じて報告された。

アプリケーションが影響を受けるのは、次の 3つの条件をすべて満たす場合に限られる。1つ目は、config.active_storage.variant_processor = :mini_magick の設定で、ImageMagick を使用しているケースである。これは、load_defaults 6.1 以前を使用するアプリケーションのデフォルト設定となっている。

2つ目は、問題となる coder が、セキュリティ・ポリシーによりブロックされていない状態で ImageMagick が動作しているケースである。Debian と Ubuntu に同梱されているポリシーでは、これらの coder はブロックされていない。3つ目は、信頼できないユーザーからのファイル・アップロードを受け付けるケースである。影響を受けるバージョンは、activestorage 8.0.5.2 未満と、 8.1 系の 8.1.4.1 未満のリリースである。

この修正には、ImageMagick のセキュリティ・ポリシーが同梱されている。Rails は、MiniMagick.cli_env を通じて、そのポリシーが格納されたディレクトリを MAGICK_CONFIGURE_PATH に追加する。それにより、MiniMagick が起動する、すべての ImageMagick プロセスに対して同梱されたポリシーが適用される。

このポリシーでは、MSL スクリプト用 coder/他のファイルの読み取りと削除を行う coder/リモートまたはローカルの参照先を取得する coder/Ghostscript をバックエンドとして使用する coderと、@filename による間接参照がブロックされる。このポリシーは、ホスト側の既存ルールを置き換えるのではなく、追加する形で適用される。

画像処理に関連するセキュリティ問題が Rails で発生したのは、今回が初めてのことではなく、Cyber Security News は CVE-2026-66066 を報じている。この脆弱性は、libvips を使用する Rails Active Storage アプリケーションに影響し、secret_key_base やクラウドサービスのキーなどの機密情報漏洩を引き起こす可能性があった。この脆弱性が、実際の攻撃で悪用されていることが研究者により確認された。2026年の夏にパッチを適用した組織であっても、今回の問題は異なる画像処理エンジンに関係し、修正内容も異なるため、安全であると判断すべきではない。

ImageMagick は、Rails 以外でもセキュリティ問題の原因となっている。最近の WordPress の脆弱性では、ImageMagick が偽装された PostScript ファイルを Ghostscript に渡すことで、Author 権限のユーザーによるコード実行の問題が引き起こされることが確認された。

また、別の Discourse の画像処理パイプラインに対するエクスプロイトでは、ImageMagick の複数の機能を組み合わせることで、サーバ上のファイルを読み取ることが可能になった。いずれの事例からも、同じ教訓が得られる。画像処理ツールは、単に画像を開くだけではなく、さまざまな処理を実行するため、信頼できないファイルのアップロードに対する厳格な制限が必要となる。

ユーザーにとって必要なことは、activestorage を 8.0.5.2/ 8.1.4.1 にアップグレードすることだ。:mini_magick を使用するアプリケーションでは、mini_magick 5.1 以降も必要となるため、古いバージョンでは起動時にエラーが発生する。ImageMagick を使用して PostScript または PDF をレンダリングするアプリケーションでは、ホスト側の policy.xml で gs delegate を再度許可する必要がある。

ただし、起動後に MiniMagick.cli_env を置き換えるアプリケーション/MiniMagick.cli_prefix により環境設定を消去するアプリケーション/独自の MiniMagick::Shell を使用するアプリケーションに対しては、同梱されたセキュリティ・ポリシーが適用されない。これらのアプリケーションでは、ポリシーのルールを ImageMagick のシステム・ポリシーへコピーする必要がある。また、GraphicsMagick は ImageMagick のポリシーを一切読み込まない。

直ちにアップグレードできない組織は、/etc/ImageMagick-7/policy.xml などのシステム・ポリシーに、同梱されたルールをコピーできる。最低限でも、MSL coder/Ghostscript 関連の coder/gs delegate をブロックする必要がある。

機密情報への対応も必要である。添付ファイルが Disk サービスに保存されている場合には、secret_key_base とアプリケーション・プロセスにより読み取り可能なすべての機密情報を変更する必要がある。対象に含まれるのは、マスターキー/config/credentials.yml.enc に保存されたすべての機密情報/ストレージとデータベースの認証情報/サードパーティのトークンなどである。Rails チームは、漏洩した機密情報をフォールバック用として保持しないよう警告している。

今回の修正は、Rails 8.0.5.2/8.1.4.1 で修正された 21件のセキュリティ問題 のうちの 1件である。その他の問題には、Strong Parameters のバイパス/Rails 8.1 における Forwarded ヘッダを介した IP スプーフィング/Action View に存在する複数のクロスサイトスクリプティング (XSS) の脆弱性/サービス拒否 (DoS) の脆弱性/セッション Cookie に関する問題などが含まれる。

また、別の High と評価された脆弱性を悪用する攻撃者は、Active Storage の動画プレビューおよび解析処理を介して、ファイルの読み取りやコード実行が可能になる。Rails 8.0 系のセキュリティ・サポートは 2026年11月7日に終了するため、古い系列を使用している組織は、8.0 以降への移行を計画する必要がある。

パッチを適用した後でも、ファイル・アップロードの処理経路を見直すことには意味がある。管理者に求められるのは、不審なアップロードの有無をログで確認し、不要なファイル・アクセス権限を持つアプリケーションを確認することである。