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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gitea-git-redir-ssrf — Giteaのリポジトリ移行エンドポイントにおける認証済みSSRFの概念実証およびラボ。gitがHTTPリダイレクトをたどってループバックのgit HTTPに到達し、内部オブジェクトが漏洩する。 | Kitploit
ツール/GitHubGitHub/abraxas/gitea-git-redir-ssrf
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテストラボと実践
GitHubabraxas/gitea-git-redir-ssrf

gitea-git-redir-ssrf

Giteaのリポジトリ移行エンドポイントにおける認証済みSSRFの概念実証およびラボ。gitがHTTPリダイレクトをたどってループバックのgit HTTPに到達し、内部オブジェクトが漏洩する。

リポジトリを見る
177日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - gitea-git-redir-ssrf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-git-redir-ssrf

解説記事: https://abraxaslabs.tech/research/gitea-git-redir-ssrf

gitea-git-redir-ssrf

Gitea 1.27.3 - Gitea

IsMigrateURLAllowed は、入力された URL に対して 1 回だけ net.LookupIP を実行する。その後、バイト列は git clone --mirror を通る。HandleGitCmdHTTPRedirection は、git がそのホップを追跡するのを止めるはずのものだ。しかし何もしていない。コメントこそがこの脆弱性の本質である。GitLab が .git なしで 301 を返すため、彼らは http.followRedirects=false を外したのだ。プルミラー取得も同じ no-op を呼び出す。

サインイン済みのユーザーは、許可リストに載っている囮ホストからマイグレーションを実行でき、git は 302 を追跡してループバックの git HTTP へ到達する。内部のオブジェクトが、そのユーザーが所有するリポジトリに流れ込む。

IDCVE 未割当
CWECWE-918
CVSSHigh: 7.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
製品Gitea
影響範囲v1.27.3 (146cc3e) まで
認証認証済み(デフォルトで登録開放)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

登録し、http://127.0.0.1:.../internal.git へ 302 リダイレクトする外部風の URL からマイグレーションする。ループバックへの直接マイグレーションは拒否される。リダイレクトを追跡したクローンは拒否されない。証拠ファイルは攻撃者自身のリポジトリに置かれる。

file:// によるディスク読み取りではない。/api/internal への X-Gitea-Internal-Auth ではない(git はそのヘッダを設定しない)。未認証の RCE ではない。git がボディを保存したことを別途示さない限り、メタデータ RCE でもない。

同じタグの残骸: keys IDOR、hostmatcher 0.0.0.0/8。

発見の経緯

v1.27.3 は 2026 年の GHSA の波を締めくくった: CVE-2026-60004(diffpatch フック RCE、CISA KEV)、CVE-2026-59774(未認証の Org-mode #+INCLUDE)、フォーク PR の Actions ゲート、リバースプロキシの X-WEBAUTH-USER デフォルト。これらについては 1.27.3+ に留まること。それでも私はそのタグを寝かせておいた。

CVE-2026-59765 は Go の uri.Open を修正した。CVE-2026-22874 は Go の reservedIPNets を修正した。git のリダイレクタは依然として FIXME のままだ。チェンジログの「disable HTTP redirects on pull mirror sync」はこの関数のことではない。

ラボでは Gitea を 8.8.4.2 に置くため、8.8.4.10 の囮ホストは hostmatcher から見て外部に見える。内部 git HTTP は Gitea の netns 上でループバックのみにバインドされる(network_mode: service:gitea、ポート 9418)。127.0.0.1 への直接マイグレーションは失敗しなければならない。リダイレクトを追跡したクローンは成功しなければならない。redir.py は /bait.git を http://127.0.0.1:9418/internal.git へ 302 する。証拠ファイル WITNESS には GHSA-GITEA-GIT-REDIR-SSRF が含まれる。

すでに記録済みの誤った道: ALLOW_LOCALNETWORKS true(これでは許可リストが消える)、file://、X-Gitea-Internal-Auth、リバースシェル。すべて見せかけだ。直接ループバックへのマイグレーションが拒否されることが対照実験である。

クライアントのバグは製品のバグに見える。http.client をシャドーするヘルパーはパケットを一切送らない。HTTPResponse に対する .recv() は .read() ではない。これに一度触れるのは、時間を浪費し、一瞬だけ 1.27.3 が仕事を終えたように見えたからだ。

ラボ

cd lab
./run.sh

対象は http://127.0.0.1:18103 のみです。ALLOW_LOCALNETWORKS=false。

negative-loopback status=422 You can not import from disallowed hosts
migrate-bait status=201 clone_addr=http://8.8.4.10/bait.git
fetch raw/WITNESS status=200 GHSA-GITEA-GIT-REDIR-SSRF
SUCCESS Gitea #2 git HTTP redirect SSRF

修正

送信時の DNS を境界として扱わないでください。http.followRedirects=false を強制し(かつ GitLab が引き続き動作するようクローン URL を .git に正規化する)、または git HTTP を、各ホップで hostmatcher を再実行するダイヤラー経由でプロキシしてください。

参考資料

  • github.com/go-gitea/gitea タグ v1.27.3
  • HandleGitCmdHTTPRedirection · IsMigrateURLAllowed
  • 関連する修正済み項目: CVE-2026-59765 · CVE-2026-22874
  • CWE-918

ライセンス

GNU Affero GPL v3.0。LICENSE を参照してください。ループバックラボ専用です。保証はありません。

ツールをダウンロード