AIを駆使したサイバー攻撃:インテリジェントな脅威を検知、予防、防御する方法

今すぐ読む
サイト翻訳には人工知能を利用しており、正確性を追求しておりますが、必ずしも100%正確とは限りません。ご了承ください。

Ruby on Rails の致命的な CVE-2025-24293 -OPSWAT ユニット 515 による Active Storage RCE の発見

By OPSWAT
この記事を共有する

Ruby on Rails入門

Ruby on Rails (Rails) は、Rubyで構築されたフルスタックのModel-View-Controller (MVC) Webフレームワークです。オブジェクトリレーショナルマッパー(Active Record)、リクエスト/レスポンスとビューレイヤー(Action Pack/Action View)、バックグラウンドジョブ処理、メーラー、WebSocketサポート、ファイルストレージとアップロード(Active Storage)などなど。

Ruby on Railsは2004年のリリース以来、世界で最も広く採用されているWebフレームワークの1つに成長しました。現在では、GitHub、Shopify、Airbnb、Basecamp、Netflixなどの有名なプラットフォームを含む、何百万ものウェブサイトやアプリケーションを動かしています。構成よりも規約、開発者の生産性、迅速なプロトタイピングを重視するRailsは、スタートアップから大企業まで、幅広く採用されているフレームワークです。

ユニット 515 研究Railsの重大な脆弱性を暴く

OPSWAT Unit 515チームのメンバーであるThai Doは、独自の調査において、Ruby on Railsの2つの脆弱性を特定しました。これらの発見は、OPSWAT プロセス全体を通じて調整を行ったRailsセキュリティチームに責任を持って開示された。

2025年8月13日、Railsチームは公開勧告を発表し、両方の脆弱性に対処したパッチ版をリリースした。

影響を受けるバージョンと修正リリース

コンポーネント
影響を受けるバージョン
固定バージョン
アクティブストレージ (CVE-2025-24293)
Rails ≥ 5.2.0 以下の固定リリース
7.1.5.2, 7.2.2.2, 8.0.2.1
アクティブレコードログ (CVE-2025-55193)
Rails < 7.1.5.2, < 7.2.2.2, < 8.0.2.1
7.1.5.2, 7.2.2.2, 8.0.2.1

Railsで確認されたセキュリティ問題

CVE-2025-24293 - アクティブストレージの安全でない変換メソッド

この脆弱性はRailsバージョン5.2.0以上のActive Storageに影響します。安全でない画像変換メソッドがmini_magickに渡されることで発生し、これが有効でないユーザー入力と組み合わさることで、リモートでコードが実行される(RCE)可能性があります。Railsでは、この欠陥はデフォルトの設定では悪用できないとしていますが、変換オプションをユーザに公開しているアプリケーションは特に危険です。

CVE-2025-55193 - アクティブレコードのロギングにおける ANSI エスケープインジェクション

この脆弱性は、7.1.5.2、7.2.2.2、および8.0.2.1より前のすべてのRailsバージョンのActive Recordロギングに影響します。攻撃者はANSIエスケープシーケンスを含む特別に細工された識別子をログに注入することができ、クエリが端末出力にどのように表示されるかを操作したり、ログを誤解させたり破損させたりする可能性があります。この不具合は、データを直接公開したりコードを実行したりするものではありませんが、監視やインシデント対応に支障をきたす可能性があります。Railsのセキュリティチームは、同じパッチを適用したリリースでこの問題を解決しました。

CVE-2025-24293 - Active Storage Remote Code Execution の技術的分析

アクティブ・ストレージの概要

Active Storageは、ファイルのアップロードを処理するRailsの組み込みフレームワークです。開発者はActive Recordモデルにファイルを添付し、ローカル(開発/テスト用)またはAmazon S3、GoogleCloud Storage、Microsoft Azureなどのクラウドサービスに保存することができます。Core 機能には、画像変換の実行、PDFやビデオのような非画像ファイルのプレビューの生成、冗長性や移行のための複数サービスへのアップロードのミラーリングなどがあります。

画像変換の仕組み

画像変換を使うと、開発者は添付ファイルを特定の寸法や形式で配信できるようになります。これは、画像添付でvariant()メソッドをコールし、 サポートされている操作を渡すことで行います。

クライアントがバリアントURLをリクエストすると、Active Storageは元のブロブからオンデマンドで変換を実行し、設定されたサービスに結果を保存し、新しく生成されたファイルへのリダイレクトを返します。

Railsは画像変換のための2つのプロセッサをサポートしています:Vipsと MiniMagickです。使用するプロセッサはconfig.active_storage.variant_processor で設定できます。

画像変換でサポートされる具体的な操作はimage_processinggemによって決定され、Railsアプリケーション用に設定されている基礎プロセッサに依存します。

CVE-2022-21831 の不完全な修正

2022年3月、RailsチームはActive Storageの画像変換機能に致命的なコードインジェクション脆弱性CVE-2022-21831を公開した。パッチは、この問題を緩和するために、変換メソッドのデフォルト許可リストを導入した。

しかし、パッチとRailsのソースコードをさらに深くレビューしている間に、ThaiOPSWAT Unit 515)が、元の修正を不完全なものにするバイパスを発見した。このバイパスは、攻撃者がリモートコード実行(RCE)を達成するための経路を再導入し、CVE-2025-24293の公開につながりました。

image_processing Gemにおける根本原因

変換が適用されると、Railsは処理をimage_processinggemに委譲し、最終的にlib/image_processing/processor.rbのImageProcessing::Processor#callを呼び出します。

設定されているVariant ProcessorがMiniMagickの場合、脆弱性はlib/image_processing/mini_magick.rb内の2つの関数に存在します:

-load_image-**loaderからの有効でないオプションを受け付ける

-save_image-**saverからの無効なオプションを受け付ける

load_image では、**loaderpage、geometryauto_orient以外のキーと値のペアは**options に保存される。save_image についても同様で、allow_splitting以外のキーは**options に保持される。これらのオプションは後でUtils.apply_options(magick, **options)に渡され、MiniMagick CLIフラグ(-qualityなど)として適用されます。

loaderと saverはデフォルトの許可リストに含まれているため安全と考えられていますが、この信頼は見当違いです。慎重に細工された入力があれば、攻撃者はこれらのオプションを悪用してチェックを迂回し、最終的にRailsにホストマシン上で任意のシステムコマンドを実行させることができます。

Railsアプリケーションの悪用シナリオ

例えば、アプリケーションが検証されていないユーザー入力を変換メソッドに直接渡す場合:

攻撃者は悪意のある入力を細工して、ローダーやセーバーのオプションを操作することができる。これにより、許可リストをバイパスしてサーバ上で任意のコマンドを実行し、リモートコード実行(RCE)を引き起こす可能性があります。

概念実証:リモートコード実行

脆弱なバージョン(8.0.2.1、7.2.2.2、7.1.5.2以前)を実行するRailsアプリケーションにおいて、OPSWAT Unit 515は、検証されていない変換入力がシェルコマンドの実行につながるエクスプロイトチェーンの実証に成功しました。

このビデオPoCは、CVE-2025-24293の悪用可能性を示し、Railsアプリケーションへの実際の影響を明らかにします:

緩和と専門的な侵入テストサービス

組織は、Ruby on Railsを最新のセキュリティリリース(7.1.5.2、7.2.2.2、または8.0.2.1)にアップグレードすることで、CVE-2025-24293と CVE-2025-55193に対処する必要があります。すぐにパッチを当てることができない場合、一時的な安全策としては、画像変換を事前に定義されたプリセットに制限する、ユーザー入力を検証してサニタイズする、ImageMagickポリシーを強化する、ログがANSIエスケープシーケンスを解釈できないようにする、などがあります。

しかし、最新のWeb環境では、パッチを適用したからといってすべてのリスクが排除されるわけではない。カスタムビジネスロジック、サードパーティの統合、複雑なデプロイメントパイプラインは、しばしばベンダーの勧告を超える悪用可能な経路を作り出します。これが、ウェブアプリケーションの侵入テストが 不可欠な理由です。

OPSWAT Unit 515は、自動化されたスキャナやチェックリスト監査をはるかに超える、専門的なWebアプリケーション侵入テストサービスを提供しています。当社のチームは、多様な業界にわたる大規模アプリケーションのテストに長年の経験を持つ、経験豊富な攻撃的セキュリティ専門家で構成されています。体系的で敵対的な手法により、認証フロー、入力検証、アクセス制御、データ処理における脆弱性を発見します。

各契約は、深い技術的専門知識とエンタープライズ対応のレポートを組み合わせ、開発チームが欠陥を効果的に修正できるよう、明確で実用的な洞察を提供します。Unit515と契約することで、企業は、重要なアプリケーションが、実際の攻撃手法をシミュレートするだけでなく、修正が本当にギャップを埋めるかどうかを検証する専門家によってテストされるという保証を得ることができます。この専門知識は、修復作業を強化し、残存リスクを低減し、進化する脅威に対するアプリケーション全体の回復力を高めます。

OPSWATで最新情報をお届けします!

今すぐご登録ください、 ストーリー、イベント情報などをお届けします。