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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-60004-PoC — Gitea 1.27.1より前のバージョンでは、Gitフックのインストールを通じてdiffpatch APIを介したリモートコード実行が可能です。 | Kitploit
ツール/GitHubGitHub/erberkan/cve-2026-60004-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ポストエクスプロイトセキュリティ仮想化ペネトレーションテストレッドチーミングリモートアクセスツール
GitHuberberkan/cve-2026-60004-poc

CVE-2026-60004-PoC

Gitea 1.27.1より前のバージョンでは、Gitフックのインストールを通じてdiffpatch APIを介したリモートコード実行が可能です。

リポジトリを見る
1日前未レビュー
ウェブサイト

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-60004: Gitea Diffpatch API リモートコード実行

[!WARNING] このリポジトリは、認可されたセキュリティ研究および管理されたラボ環境でのテストのみを目的としています。 所有していないシステム、または評価の明示的な許可を得ていないシステムに対して 概念実証を実行しないでください。

概要

CVE-2026-60004 は、Gitea の diffpatch API における重大なリモートコード実行脆弱性です。 リポジトリの作成または書き込み権限を持つ認証済みユーザーは、細工されたパッチを送信することで、 一時的なベアリポジトリ内に実行可能な Git フックを生成させることができます。 フックがトリガーされると、攻撃者が制御するコマンドが Gitea サービスアカウントの権限で実行されます。

パブリック登録が有効になっている場合、未認証の攻撃者がアカウントを作成し、 脆弱な認証済みエンドポイントに到達できる可能性があります。

属性詳細
識別子CVE-2026-60004
アドバイザリGHSA-rcr6-4jqh-j84m
深刻度重大 — CVSS 3.1: 9.8
弱点CWE-94: コード生成の不適切な制御
影響を受けるバージョンGitea 1.17.0 から 1.27.0
修正バージョンGitea 1.27.1
必要なアクセス権リポジトリへの書き込みアクセス
実行コンテキストGitea のオペレーティングシステムアカウント
CISA KEV 登録日2026-08-25

リポジトリの内容

ファイル説明
gitea_diffpatch_rce.py標準ライブラリのみを使用した概念実証。認証を行い、プライベートリポジトリを作成し、細工されたパッチを送信して、コマンド出力を取得します。
payload.patch実行可能な hooks/post-index-change フックを作成するパッチの例。
poc.pngラボ検証中に取得されたスクリーンショット。
README.md元の研究ノート。

検証済み環境

概念実証は、以下の分離された環境で検証されました:

コンポーネント構成
Gitea1.27.0
Git2.47.2
デプロイgitea-lab という名前の Docker コンテナ
サービスアドレス192.168.184.128:3000
確認された IDuid=1000(git) gid=1000(git)

悪用に成功すると、以下のようなコマンド出力が得られました:

root@kitploit:~
uid=1000(git) gid=1000(git) groups=1000(git)
Linux 6.12.20-amd64 x86_64
/data/gitea/tmp/local-repo/upload.git630501597
[exit-status=0]

概念実証の出力

前提条件

  • Python 3.8 以降
  • 対象の Gitea インスタンスへのネットワークアクセス
  • リポジトリ作成および書き込み権限を持つ有効な Gitea アカウント、または パブリック登録が有効な対象ラボインスタンス
  • 明示的に認可されたテスト環境

このスクリプトは Python の標準ライブラリのみを使用し、追加の パッケージを必要としません。

使用方法

root@kitploit:~
python3 gitea_diffpatch_rce.py <base_url> <username> <password> "<command>"

ローカルラボインスタンスでの例:

root@kitploit:~
python3 gitea_diffpatch_rce.py \
  http://127.0.0.1:3000 \
  pocuser \
  'P@ssw0rd!' \
  'id; uname -a'

このスクリプトは最初に Web 登録を試み、次に指定された認証情報で認証を行います。 これにより、同じコマンドが、オープン登録が有効なインスタンスでの新規アカウント、 または既存のアカウントのいずれでも機能します。

技術的分析

悪用チェーンは 4 つの段階で構成されています:

  1. 攻撃者が制御するパッチの送信
    POST /api/v1/repos/{owner}/{repo}/diffpatch は、一時クローン内で git apply --index --recount --cached --binary --ignore-whitespace --whitespace=fix -3 を使用して、指定されたパッチ内容を適用します。

  2. フックパスの配置
    一時リポジトリは、ベアの共有クローンとして作成されます。ベアリポジトリでは、 リポジトリルートが $GIT_DIR でもあるため、パス hooks/post-index-change は Git のアクティブなフックディレクトリ内に解決されます。

  3. 実行可能フックの生成
    同じパッチが 2 回送信されます。2 回目の適用により add/add 競合が発生し、 3 ウェイフォールバックによって、--cached の使用にもかかわらず、パスが モード 100755 でディスク上に生成されます。その後のインデックス更新により post-index-change が呼び出され、注入されたシェルコードが Gitea サービス アカウントとして実行されます。

  4. Git ネイティブの出力取得
    フックは objects/info/alternates を通じてオリジンリポジトリを特定し、 コマンド出力を Git ブロブとして保存し、ツリーとコミットを作成して、 refs/heads/output-leak を更新します。その後、概念実証は Gitea の raw-file API を通じて結果を取得します。この手法では、対象からの直接的な外向き接続は 必要ありません。

影響

悪用に成功すると、Gitea サービスアカウントの権限でコマンドが実行されます。 デプロイ構成によっては、攻撃者が以下にアクセスできる可能性があります:

  • app.ini およびデータベースの認証情報
  • SECRET_KEY、INTERNAL_TOKEN、および LFS 関連のシークレット
  • Gitea プロセスによってマウントまたは読み取り可能なリポジトリ
  • プロセスの環境変数
  • Gitea ホストまたはコンテナから到達可能な内部サービス

ラボアカウントが app.ini への読み取りアクセス権を持つことが確認されました。

侵害の指標

防御担当者は、以下のアーティファクトとリクエストパターンを調査する必要があります:

  • /api/v1/repos/*/*/diffpatch への、短時間での同一またはほぼ同一の 2 回のリクエスト
  • output-leak という名前のブランチ
  • poc <[email protected]> によって作成されたコミット
  • ベアリポジトリまたは一時クローンディレクトリ内の、hooks/post-index-change という名前の予期しない実行可能ファイル
  • /data/gitea/tmp/local-repo/upload.git* などのパス配下の不審なアクティビティ

これらの指標は、含まれている概念実証を説明するものであり、網羅的ではありません。 改変されたエクスプロイトは、異なるパス、ref、ID、または出力チャネルを使用する 可能性があります。

修復と緩和

  1. Gitea 1.27.1 以降にアップグレードする。 これが推奨される修復です。 修正により、影響を受けるワークフローは非ベアの一時クローンを使用するように 変更されます。
  2. アップグレードが完了するまで、リバースプロキシで diffpatch API を制限する。 たとえば、一致する /api/v1/.../diffpatch ルートへのアクセスを拒否します。 デプロイ前に、正当な統合に対してルールを検証してください。
  3. パブリック登録を無効にする。 運用上必要でない場合は DISABLE_REGISTRATION=true を設定します。これにより未認証での到達可能性は 減少しますが、リポジトリへの書き込みアクセス権を持つ既存ユーザーに対する 保護にはなりません。
  4. ログとリポジトリの ref を確認する。 上記の指標を調査し、侵害が疑われる 場合は、Gitea アカウントからアクセス可能な認証情報やシークレットを ローテーションしてください。

この研究で使用されたラボコンテナは、以下で破棄できます:

root@kitploit:~
docker rm -f gitea-lab

責任ある使用

この資料は、防御担当者が脆弱性を再現、理解、検出、および修復するのを支援する ために提供されています。運用担当者は、分離された環境でのみテストを行い、 組織の認可および開示要件に従ってください。

ツールをダウンロード