CVE-2019-5418 の詳細
CVEの情報
説明:
There is a File Content Disclosure vulnerability in Action View <5.2.2.1, <5.1.6.2, <5.0.7.2, <4.2.11.1 and v3 where specially crafted accept headers can cause contents of arbitrary files on the target system's filesystem to be exposed.
CVE更新日: 2019-03-27 14:29:01.533000
CVSSバージョン: 3.1
CVSSスコア: 7.5
KEVの情報
KEV更新日: 2025-07-07
EPSSの情報
EPSSは脆弱性が今後30日以内に悪用される確率を予測するスコアリングシステムで、FIRST(Forum of Incident Response and Security Teams)が提供しています。
EPSSのスコアが高いということは、攻撃されるリスクが高いことを意味するので、早めの対策が必要です。
EPSSスコア: 0.985070000
EPSS更新日: 2026-10-16 00:00:00
SSVCの情報
SSVCはカーネギーメロン大学ソフトウェア工学研究所が提案する脆弱性の評価手法です。ステークホルダーごとに脆弱性対応の優先度を決定することを支援します。
本サイトでは、CVE、KEV、EPSSの内容からExploitation(悪用状況)、Technical Impact(技術的影響)、Automatable(自動攻撃の可否)を判定します。
Exploitation: active
Technical Impact: high
Automatable: True
CVE-2019-5418は、Ruby on RailsのAction Viewコンポーネントにおけるファイル内容開示の脆弱性です。以下に詳細を解説します。
1. 脆弱性の概要
Ruby on RailsのAction Viewコンポーネントに、ファイル内容開示の脆弱性(File Content Disclosure)が存在します。攻撃者は、細工されたAcceptヘッダを送信し、
render file:関数が使用されている場合に、ターゲットサーバー上の任意のファイルを読み取り、その内容を漏洩させることが可能です。この脆弱性は、テンプレートのレンダリングには影響しません。1.1 影響
この脆弱性が悪用されると、サーバー上の任意のファイルの内容が攻撃者に開示される可能性があります。これにより、以下のような情報が漏洩する可能性があります。 * アプリケーションの設定詳細 * サーバー情報(フレームワーク、ライブラリ、OSのバージョンなど) * ユーザーデータ(パスワード、個人情報など) * APIキー
また、このファイル内容開示の脆弱性は、他の脆弱性(例えばCVE-2019-5420)と組み合わせることで、リモートコード実行(RCE)に繋がる可能性も指摘されています。
1.2 深刻度
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N2. 対象となる環境
2.1 影響を受けるOSバージョン
この脆弱性はRuby on RailsフレームワークのAction Viewコンポーネントに存在するため、特定のOSバージョンに直接依存するものではありません。しかし、Red Hat Software Collectionsに含まれる
rh-ror42-rubygem-actionpackおよびrh-ror50-rubygem-actionpackのバージョンに影響があったとされています。影響を受けるRuby on Railsのバージョンは以下の通りです。 * Action View
<5.2.2.1* Action View<5.1.6.2* Action View<5.0.7.2* Action View<4.2.11.1* Action Viewv3* Ruby on Rails Framework6.0.0 - <= 6.0.0.beta2* Ruby on Rails Framework5.2.0 - <= 5.2.2.0* Ruby on Rails FrameworkAll of 4.x prior to HeroDevs 4.2 LTS* Ruby on Rails FrameworkAll of 3.x prior to HeroDevs 3.2 LTS* Ruby on Rails FrameworkAll of 2.x prior to HeroDevs 2.3 LTS2.2 影響を受ける設定
この脆弱性は、コントローラー内で
render file:オプションが使用されており、かつformatが明示的に指定されていない場合に影響を受けます。影響を受けるコードの例:
ruby class UserController < ApplicationController def index render file: "#{Rails.root}/some/file" end end3. 影響を受けた時の兆候
システムがこの脆弱性の影響を受けた際の具体的な兆候は、攻撃者がどのファイルを読み取ろうとしたかによります。直接的なエラーメッセージやクラッシュなどではなく、攻撃者が意図しないファイルの内容を不正に取得している状態となるため、通常のログなどから検出することは難しい可能性があります。Webサーバーのアクセスログやアプリケーションのログを詳細に分析し、不審なAcceptヘッダを持つリクエストや、通常アクセスされないファイルへのリクエストがないかを確認することが考えられます。
4. 推奨対策
4.1 本対策
以下の修正バージョンにアップグレードしてください。 *
6.0.0.beta3*5.2.2.1*5.1.6.2*5.0.7.2*4.2.11.14.2 暫定回避策(緩和策)
render file:を使用している箇所で、明示的にformatsオプションを指定することで、この脆弱性を緩和できます。緩和策を適用したコードの例:
ruby class UserController < ApplicationController def index render file: "#{Rails.root}/some/file", formats: [:html] end endまた、以下のモンキーパッチをイニシャライザに適用することでも緩和が可能です。
config/initializers/formats_filter.rb: ```rubyfrozen_string_literal: true
ActionDispatch::Request.prepend(Module.new do def formats super().select do |format| format.symbol || format.ref == "/" end end end) ```
参照したサイト