Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-21300 — 大文字と小文字を区別しないファイルシステム上の悪意のあるGitフックを介したCVE-2021-21300の任意コード実行を示します。悪用手順と防御策を含みます。 | Kitploit
ツール/GitHubGitHub/sizvy/cve-2021-21300
脆弱性分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育バイナリエクスプロイト
GitHubsizvy/cve-2021-21300

CVE-2021-21300

大文字と小文字を区別しないファイルシステム上の悪意のあるGitフックを介したCVE-2021-21300の任意コード実行を示します。悪用手順と防御策を含みます。

リポジトリを見る
1441年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2021-21300: 悪意のあるGitフックによる任意のコード実行

📌 概要

CVE-2021-21300は、Git(バージョン2.14.2から2.30.1)における重大な脆弱性であり、攻撃者がシンボリックリンクと大文字小文字を区別しないファイルシステムを悪用して、被害者のマシン上で任意のコードを実行することを可能にします。


🧠 問題の概要

  • 脆弱性: 悪意のあるGitフックを介した任意のコード実行。
  • 根本原因: 大文字小文字を区別しないファイルシステム(例: Windows/macOS)が A/post-checkout を .git/hooks/post-checkout として解決する。
  • 影響: 攻撃者は、ユーザーが感染したリポジトリをクローンした際に悪意のあるフックを注入して実行できる。

🔍 理論的背景

トリック

Gitは.git/hooks/に保存されたユーザー定義フックを許可します。大文字小文字を区別しないファイルシステムでは:

  • 細工されたフォルダ A/post-checkout が .git/hooks/post-checkout として解釈される可能性があります。
  • シンボリックリンクが A/ を .git/hooks/ に置き換え、制限を回避します。

エクスプロイト

  1. ディレクトリAと、悪意のあるコマンドを含むファイルA/post-checkoutを作成します。
  2. そのディレクトリとその内容をGitにステージングします。
  3. ディレクトリを削除し、Aを.git/hooks/へのシンボリックリンクに置き換えます。
  4. GitがA/post-checkoutを実行すると、実際には.git/hooks/内の悪意のあるファイルが実行されます。

⚠️ トリガー条件

  • 大文字小文字を区別しないファイルシステム(Windows/macOS)。
  • .git/hooks/へのシンボリックリンク。
  • グローバルGit LFSフィルターが有効。
  • 被害者が悪意のあるコードを実行する権限を持っている。

🛠️ 攻撃ワークフロー

悪意のあるリポジトリの生成

  • .gitattributesを作成して、A/post-checkoutのLFS処理をトリガーする。
  • 悪意のあるスクリプトA/post-checkoutを追加する(例: "PWNED"と表示)。
  • 偽のファイルA/a、A/bを追加して正当に見せかける。
  • A/を.git/hooks/へのシンボリックリンクに置き換える。
  • 変更をコミットしてプッシュする。

🛡 既存の防御策

設定ベース

git clone -c core.symlinks=true
git config --system core.symlinks true

##💡 その他の潜在的な防御策

  • Gitエイリアスで安全なクローンを自動化する

  • ディレクトリを作成する。

  • 大文字小文字の区別を有効にする(Windows):

    fsutil file setcasesensitiveinfo <DESTINATION FOLDER> enable
    
  • そのディレクトリにクローンする。

  • 安全なクローンのためにこれらの手順を自動化するGitエイリアスを作成する。

ツールをダウンロード