Trusted Design

CVE-2021-3129 の詳細

CVEの情報

説明:
Ignition before 2.5.2, as used in Laravel and other products, allows unauthenticated remote attackers to execute arbitrary code because of insecure usage of file_get_contents() and file_put_contents(). This is exploitable on sites using debug mode with Laravel before 8.4.2.

CVE更新日: 2021-01-12 15:15:16.453000

CVSSバージョン: 3.1

CVSSスコア: 9.8

KEVの情報

KEV更新日: 2023-09-18

EPSSの情報

EPSSは脆弱性が今後30日以内に悪用される確率を予測するスコアリングシステムで、FIRST(Forum of Incident Response and Security Teams)が提供しています。
EPSSのスコアが高いということは、攻撃されるリスクが高いことを意味するので、早めの対策が必要です。

EPSSスコア: 0.999430000

EPSS更新日: 2026-10-16 00:00:00

SSVCの情報

SSVCはカーネギーメロン大学ソフトウェア工学研究所が提案する脆弱性の評価手法です。ステークホルダーごとに脆弱性対応の優先度を決定することを支援します。
本サイトでは、CVE、KEV、EPSSの内容からExploitation(悪用状況)、Technical Impact(技術的影響)、Automatable(自動攻撃の可否)を判定します。

Exploitation: active

Technical Impact: high

Automatable: True

AIを使った解説

解説:

CVE-2021-3129について、以下の観点で解説します。

1. 脆弱性の概要

Laravelフレームワークで利用されるデバッグおよびエラーページコンポーネントであるIgnitionに存在する、認証されていないリモートコード実行(RCE)の脆弱性です。この脆弱性は、file_get_contents()およびfile_put_contents()関数の不適切な使用に起因し、攻撃者が任意のコードを実行することを可能にします。

1.1 影響

  • 認証されていないリモート攻撃者が任意のコードを実行できる可能性があります。
  • 被害システムを制御し、Laravelが使用するすべてのデータベースとサービスを侵害する可能性があります。
  • データやインフラ全体に深刻な影響を与える可能性があります。
  • 攻撃者は、任意のファイルの読み書き操作を実行できる可能性があります。

1.2 深刻度

  • 深刻度は「緊急(Critical)」と評価されています。
  • CVSS v3の基本スコアは9.8(High)です。

2. 対象となる環境

2.1 影響を受けるOSバージョン

特定のOSバージョンではなく、以下のソフトウェアコンポーネントのバージョンが影響を受けます。

  • Ignition: バージョン 2.5.2 より前のもの (特に 2.5.1 以前)
  • Laravel: バージョン 8.4.2 より前のもの (または 8.4.3 未満)

2.2 影響を受ける設定

  • Laravelのデバッグモードが有効になっている場合(.envファイルでAPP_DEBUG=trueと設定されている場合)。
    • この脆弱性は、デバッグモードが無効な場合は影響を受けません。

3. 影響を受けた時の兆候

  • Laravelのストレージディレクトリやログディレクトリにおける異常なファイルシステムアクティビティ。
  • /_ignition/execute-solutionまたは/_ignition/solutionsエンドポイントをターゲットとしたWebアクセスログ内のリクエスト。
  • PHPのシリアライズされたオブジェクトやPharアーカイブの署名を含むアプリケーションログ。
  • アプリケーションログ内の不審なファイルパス操作やシリアライズ関連のエラー。
  • Kinsingやkdevtmpfsiなどの仮想通貨マイニングマルウェアの存在。
  • データベースやその他のサービスが侵害されている兆候。
  • マルウェアを再ダウンロードするためのcronジョブ汚染の形跡。

4. 推奨対策

4.1 本対策

  • Facade Ignitionをバージョン2.5.2以降にアップグレードしてください。
  • Laravelをバージョン8.4.2以降(または8.4.3以上)にアップグレードしてください。

4.2 暫定回避策(緩和策)

  • 本番環境では、.envファイルでAPP_DEBUG=falseに設定し、デバッグモードを無効にしてください。
  • Web Application Firewall(WAF)ルールを導入し、Pharデシリアライゼーションの試行を検出するように設定してください。
  • 既知のCVE-2021-3129の悪用パターンに対する侵入検知シグネチャを展開してください。
  • ウェブサーバーのアクセスログを監視し、不審な活動がないか確認してください。
  • 修正を適用する前に、ファイルのバックアップを取ることを推奨します。

5. その他解説すべき観点

  • 脆弱性の種類: 不適切なコード生成の制御('Code Injection')、Pharデシリアライゼーションの脆弱性です。
  • 悪用方法: この脆弱性は、Ignitionのデバッグページがエラーソリューションを処理する方法の欠陥を利用します。ユーザーが制御する入力が、適切なサニタイズなしにファイル操作関数に渡されることで、任意のファイルの読み書き操作が可能となり、最終的にコード実行につながります。
  • 攻撃手法: 攻撃は、ログポイズニング攻撃と同様の経路をたどり、PHPフィルターを利用して悪意のあるペイロードをログファイルに書き込み、コード実行をトリガーします。
  • CISA Known Exploited Vulnerabilities (KEV) リストへの追加: この脆弱性はCISAの既知の悪用された脆弱性カタログに追加されており、実際に悪用されていることが確認されています。

参照したサイト

NVDサイト

NVDでCVEの詳細を見る

戻る