Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-48384 — GITの脆弱性 | クローン作成時のキャリッジリターンとRCE | Kitploit
ツール/GitHubGitHub/s41r4j/cve-2025-48384
脆弱性分析エクスプロイトサプライチェーンセキュリティ論文と研究学習と教育ラボと実践
GitHubs41r4j/cve-2025-48384

CVE-2025-48384

GITの脆弱性 | クローン作成時のキャリッジリターンとRCE

リポジトリを見る
10ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

CVE-2025-48384の概要

CVE-2025-48384は、広く使用されている分散型バージョン管理システムであるGitにおける重大な脆弱性です。これは、設定値における復帰文字(CR)の不適切な処理に起因し、サブモジュールのチェックアウト中にパストラバーサルの問題を引き起こす可能性があります。この欠陥により、特定の条件下で任意のコード実行が可能になる可能性があります。この脆弱性は2025年7月8日に公開され、2025年8月26日に最終更新されました。2025年8月25日に米国サイバーセキュリティ・インフラストラクチャ安全保障庁(CISA)の既知の悪用された脆弱性(KEV)カタログに追加され、実環境での活発な悪用が示されています。是正期限は2025年9月15日です。

脆弱性の説明

この問題は、Gitが設定値を処理する方法に起因します:

  • 設定値を読み取るとき、Gitは末尾の復帰文字と改行文字(CRLF)を削除します。
  • ただし、設定エントリを書き込むとき、末尾にCRを含む値は適切に引用符で囲まれないため、その後の読み取り中にCRが失われます。

この不整合により、パスに末尾のCRが含まれる場合、サブモジュールが誤った場所にチェックアウトされる可能性があります。攻撃者がこの変更されたパスをサブモジュールのフックディレクトリに指すシンボリックリンクを設定し、サブモジュールに実行可能なpost-checkoutフックが含まれている場合、チェックアウト後にフックスクリプトが意図せず実行され、任意のコード実行につながる可能性があります。

技術的詳細

この脆弱性は、Gitの設定解析における解釈の競合を悪用します:

  • 設定処理の不一致:末尾のCRは読み取り時に削除されますが、書き込み時には引用符なしでは保持されません。
  • サブモジュールのチェックアウトパスの変更:submodule/path<CR> のようなサブモジュールパスは、CRが失われた後、submodule/path と解釈される可能性があります。
  • シンボリックリンクの悪用:攻撃者は、変更されたパスからフックディレクトリ(例:.git/hooks/post-checkout)へのシンボリックリンクを作成でき、git submodule update や git clone --recurse-submodules などの操作中に悪意のあるフックの実行を可能にします。

これは以下のように分類されます:

  • CWE-436:解釈の競合(データの処理方法の不一致)。
  • CWE-59:ファイルアクセス前の不適切なリンク解決(「リンク追従」)。シンボリックリンクの悪用による。

攻撃経路はネットワークベース(AV:N)で、複雑度は高く(AC:H)、必要な権限は低く(PR:L)、ユーザー操作が必要で(UI:R)、スコープは変更され(S:C)、機密性、完全性、可用性に高い影響(C:H/I:H/A:H)を与えます。

影響を受けるバージョン

この脆弱性は、以下の修正済みリリースより前のGitバージョンに影響します:

  • v2.43.7より前の全バージョン
  • v2.44.0からv2.44.3まで
  • v2.45.0からv2.45.3まで
  • v2.46.0からv2.46.3まで
  • v2.47.0からv2.47.2まで
  • v2.48.0からv2.48.1まで
  • v2.49.0
  • v2.50.0

この脆弱性は、Linux、macOS、Windowsを含むさまざまなプラットフォーム上のGitに影響しますが、特に開発者環境、CI/CDパイプライン(例:GitHub Actions、GitLab CI)、および信頼できないリポジトリからGitサブモジュールがクローンされるあらゆる場所で関連性があります。

影響と悪用シナリオ

  • 影響:リモートコード実行(RCE)、データ流出、またはシステム侵害の高いリスク。開発者のワークフローでは、悪意のあるリポジトリがクローンされた場合、サプライチェーン攻撃につながる可能性があります。
  • 悪用の要件:
    • 末尾にCRが付いた特別に細工されたサブモジュールパス。
    • フックディレクトリにリダイレクトするシンボリックリンク。
    • サブモジュール内の実行可能なフック(例:post-checkout)。
    • --recurse-submodules を使用したリポジトリのクローンなどのユーザー操作。
  • 実際の悪用:CISAのKEVカタログに掲載されているため、連邦政府機関と重要インフラは2025年9月15日までに是正する必要があります。開発者やオープンソースプロジェクトを標的とした攻撃で悪用されている可能性が高いです。アドバイザリには公開された概念実証(PoC)は記載されていませんが、複雑度が高いことから、特定の設定が必要であることが示唆されています。

CVSSの詳細はNVDではまだ完全にはスコアリングされていません(CVSS 4.0は保留中)が、アドバイザリのCVSS 3.1メトリクスに基づくと、重大な深刻度(推定CVSS 8.8、以前に広範なCVEリストで指摘されたとおり)に相当します。

緩和策と推奨事項

  • 修正済みバージョン:Gitを以下のいずれか以降に更新してください:
    • v2.43.7
    • v2.44.4
    • v2.45.4
    • v2.46.4
    • v2.47.3
    • v2.48.2
    • v2.49.1
    • v2.50.1
  • 回避策:
    • 信頼できないリポジトリからサブモジュールを再帰的に(--recurse-submodules)クローンしないでください。
    • 可能であれば、Git設定でシンボリックリンクの使用を無効化または制限してください。
    • 権限が制限された環境(例:コンテナ化された設定)でGitを使用してください。
  • 追加のアドバイス:CISAの指示の対象となる組織は、ベンダーの指示に従ってパッチを適用するか、パッチ適用が不可能な場合は使用を中止してください。不審なサブモジュールがないかリポジトリを定期的にスキャンし、予期しないフックの実行を監視してください。

クレジットと参照情報

  • クレジット:アドバイザリでは、報告と詳細の公開についてttaylorrにクレジットを記載しています。
  • 主な参照情報:
    • NVDエントリ:https://nvd.nist.gov/vuln/detail/CVE-2025-48384
    • GitHub Advisory:https://github.com/git/git/security/advisories/GHSA-vwqx-4fm8-6qc9
    • CISA KEVカタログ:(NVDの詳細に統合)

この脆弱性は、バージョン管理システム、特にサブモジュールにおける安全な処理の重要性を浮き彫りにしています。本番環境または開発環境でGitを使用している場合は、活発な悪用が確認されているため、直ちに更新を優先してください。

クイックPoC

  • 前提条件:Dockerがインストールされていること、このリポジトリがローカルにクローンされていること。PoC中にネットワークは不要です。
  • 脆弱なGit:Git 2.40.4を使用(パス混乱の動作を検証済み)。
  • サブモジュールURL:.gitmodules は https://github.com/s41r4j/CVE-2025-48384-submodule.git を指していますが、PoCはオフラインテスト用にローカルコピーへ書き換えます。

実行:

bash scripts/poc.sh

処理内容:

  • Git 2.40.4を含むコンテナイメージを構築します。
  • コンテナ内の $HOME/flag.txt にフラグを作成します。
  • malicious-submodule-repo/ をコンテナ内の /tmp にコピーします。
  • このリポジトリを、そのローカルサブモジュールコピーへのURL書き換え付きで再帰的にクローンします。
  • パス混乱が成功した場合に post-checkout フックをトリガーするため、チェックアウトを強制します。
  • フックによって作成された /tmp/flag.txt を出力します。

注意事項:

  • 悪意のあるサブモジュールパスは、gitlinkとして格納されたリテラルの sub^M(CR)です。サニタイズされたパス sub はシンボリックリンクを介して .git/hooks に解決されるため、サブモジュールが追跡する post-checkout が実際のフックとして配置され、実行されます。
  • GitHubにプッシュした後、gitlinkをリモートサブモジュールの最新コミットに再設定するには、bash scripts/update-gitlink.sh を実行してください。
ツールをダウンロード