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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
forgejo-openid-discovery-ssrf — Forgejo 16.0.5 - 高 - リモート - SSRF - OpenIDディスカバリが攻撃者制御のURLを取得 | Kitploit
ツール/GitHubGitHub/abraxas/forgejo-openid-discovery-ssrf
偵察脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティペネトレーションテスト
GitHubabraxas/forgejo-openid-discovery-ssrf

人気

すべて見る →

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

すべてのツールを探索

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

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

forgejo-openid-discovery-ssrf

Forgejo 16.0.5 - 高 - リモート - SSRF - OpenIDディスカバリが攻撃者制御のURLを取得

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

Abraxas Labs - forgejo-openid-discovery-ssrf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  forgejo-openid-discovery-ssrf

forgejo-openid-discovery-ssrf

クラス: SSRF 到達範囲: リモート

Forgejo 16.0.5 (8d24b7d) - Forgejo

[openid] ENABLE_OPENID_SIGNIN が有効な場合、未認証の POST /user/login/openid が攻撃者の URL を yohcop openid-go v1.0.1 に渡す。このライブラリのパッケージレベルヘルパーは http.DefaultClient を使用する。このパスには hostmatcher が存在しない。Webhook とマイグレーションは外向き HTTP をフィルタリングする。OpenID はそうではない。

ログインフォームに到達できる者は、Forgejo ホストからループバック、RFC1918、CGNAT、IMDS に対して Yadis GET を駆動できる。

IDCVE 未割当
クラスSSRF
到達範囲リモート (OpenID サインインが有効な場合、未認証)
CWECWE-918
CVSSHigh: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
製品Forgejo
影響ENABLE_OPENID_SIGNIN を有効にした v16.0.5 (8d24b7d) まで; Gitea CVE-2026-58314 の残存
認証未認証
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

アカウント不要。OpenID URL を POST する。Forgejo ホストがそれを取得する。

権限メソッド / シンク偵察 / 完全性 / 可用性ラボ実証または推測
ループバックに対して Yadis GET を駆動未認証 POST /user/login/openid に openid=http://127.0.0.1:18080/偵察 (Forgejo ホストからの外向き HTTP)ラボ実証済み。Oracle は 127.0.0.1 から Accept: application/xrds+xml 付きの GET / を観測
RFC1918、CGNAT、リンクローカル、IMDS を探索同じ http.DefaultClient Discover、IP フィルタなし偵察クライアントから推測。ラボはループバックのみ使用
サインイン済みの add-OpenID から繰り返しPOST /user/settings/security/openid も RedirectURL を呼び出し、allowedOpenIDURI をスキップ偵察ハンドラから推測。ラボは未認証ログイン POST を使用
ログインエラーでレスポンスボディを読むCVE-2021-45325 以降、エラーは fetch をダンプしなくなった偵察ラボ実証済みでクローズ。この残存はリクエストであり、HTML リークではない

このピンでクローズ済み: OpenID アソシエーション CSRF (openIDState セッションノンス)、webhook/migrate hostmatcher (そちらでは依然使用)、git followRedirects=false、migrate LookupIP CVE-2026-82556。ラボは OpenID ログインを完了せず、シェルを返さない。

Web インストーラのチェックボックスはデフォルトでオン (EnableOpenIDSignIn = MustBool(!InstallLock) がアンロック中、その後 app.ini に書き込まれる)。ロック後、省略されたキーは false。Docker の app.ini テンプレートには [openid] セクションがないため、ウィザードなしの事前ロック済みイメージは、オペレータがキーを設定しない限りオフ。空の WHITELISTED_URIS はすべての URI を許可する。

発見の経緯

v16.0.5 は OpenID アソシエーション CSRF をクローズした。それでも私はそのサーフェスに留まった。Gitea PR 38406 / CVE-2026-58314 は hostmatcher でフィルタリングされたクライアントを専用の openid-go インスタンスに導入した。このピンは依然としてパッケージレベルヘルパーを呼び出している。

すでに記録済みの誤った道: アソシエーション CSRF の再報告 (そのノンスはツリー内にある); Docker の事前ロック済みイメージをデフォルトとみなす (ウィザードがチェックボックスをオンに書き込む); 古い OpenID エラー文字列リークを期待する; リバースシェル。茶番。

ラボ

python3 forgejo-openid-discovery-ssrf-Abraxas-Labs.py

または:

cd lab
./run.sh

ターゲットは http://127.0.0.1:19330 のみ。イメージ codeberg.org/forgejo/forgejo:16.0.5。Oracle は Forgejo の netns を共有し、127.0.0.1:18080 をバインドする。

IOC post-openid status=200
IOC xrds-hits count=1
SUCCESS forgejo-openid-discovery-ssrf how=live post=/user/login/openid openid=http://127.0.0.1:18080/ path=/ accept=application/xrds+xml peer=127.0.0.1 post-status=200 FORGEJO-OPENID-DISCOVERY-WITNESS

修正

Gitea PR 38406 と同じ: hostmatcher でフィルタリングされた http.Client を専用の openid-go インスタンスに導入する。WHITELISTED_URIS を第二のゲートとして維持する。ループバック、RFC1918、CGNAT、リンクローカル、メタデータをブロックする。

参考文献

  • codeberg.org/forgejo/forgejo タグ v16.0.5
  • modules/auth/openid/openid.go
  • 近傍のパッチ済み (この fetch ではない): v16.0.5 OpenID アソシエーション CSRF
  • Gitea クラス: CVE-2026-58314 / PR 38406
  • CWE-918

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード