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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gitea-CVE-2026-28699 — CVE-2026-28699のラボとレポート: HTTP Basic認証を介したGitea OAuth2スコープ強制のバイパス | Kitploit
ツール/GitHubGitHub/alardiians/gitea-cve-2026-28699
認証と認可脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育ラボと実践
GitHubalardiians/gitea-cve-2026-28699

gitea-CVE-2026-28699

CVE-2026-28699のラボとレポート: HTTP Basic認証を介したGitea OAuth2スコープ強制のバイパス

リポジトリを見る
12ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-28699: Gitea OAuth2 スコープバイパス(HTTP Basic 認証経由)

read:user のみにスコープされた Gitea OAuth2 アクセストークンが、Bearer トークンとしてではなく Authorization: Basic base64(<token>:x-oauth-basic) として送信されると、完全な書き込みアクションを実行できます。Basic 認証で提示されたトークンはスコープチェックがスキップされます。

影響を受けるバージョン: <= 1.26.1。修正バージョン: 1.26.2。 アドバイザリ: GHSA-9r5x-wg6m-x2rc。CWE-863。重要度: 高。

詳細な解説: WRITEUP.md

Quickstart

root@kitploit:~
pip install -r requirements.txt   # requests
python fetch_binaries.py          # pulls vulnerable 1.26.1 + patched 1.26.2 for your OS
python poc.py 1.26.1              # vulnerable: Basic-auth write succeeds (scope bypassed)
python poc.py 1.26.2              # patched: Basic-auth write blocked (403)

poc.py はシステムの一時ディレクトリに使い捨ての Gitea を SQLite 上に立ち上げ、OAuth2 認可コードフローを実行して read:user のみのトークンを発行し、その後 Bearer と Basic の両方で書き込みエンドポイントを呼び出し、結果を表示します。POC_DEBUG=1 を設定すると認証フローの手順を表示できます。

Expected output

脆弱な 1.26.1:

root@kitploit:~
[Bearer] PATCH /api/v1/user/settings -> HTTP 403   (blocked)
[Basic ] PATCH /api/v1/user/settings -> HTTP 200   (ALLOWED -- scope BYPASSED)
>>> VULNERABLE: read:user token performed a write via Basic auth.

修正済み 1.26.2:

root@kitploit:~
[Bearer] PATCH /api/v1/user/settings -> HTTP 403   (blocked)
[Basic ] PATCH /api/v1/user/settings -> HTTP 403   (blocked)
>>> PATCHED: scope enforced on both Bearer and Basic.

Root cause in one table

services/auth/basic.go は OAuth2 トークンに対して IsApiToken を設定するが ApiTokenScope は設定しない。スコープが欠落している場合、tokenRequiresScopes ミドルウェアは早期に戻るため、何もチェックされない。1.26.2 の修正では、欠落していた store.GetData()["ApiTokenScope"] = accessTokenScope が追加された。

Files

許可された使用のみ

教育および許可されたセキュリティテストのため: 自分のラボ、CTF や HTB のボックス、対象範囲内のバグバウンティのターゲット。PoC は自身の使い捨て Gitea を実行するため、所有していないものに向けてはいけません。

ツールをダウンロード
認証提示IsApiTokenApiTokenScopeスコープ適用?
Bearer 経由の OAuth2 トークンtrue設定ありはい
Basic 経由の OAuth2 トークンtrue欠落いいえ(フェイルオープン)
個人アクセストークンtrue設定ありはい
ファイル目的
WRITEUP.md根本原因分析、影響、修正方法、検出
fetch_binaries.pyお使いの OS/アーキテクチャ用の 1.26.1/1.26.2 バイナリをダウンロードします
poc.pyGitea をプロビジョニングし、read:user トークンを発行し、Bearer と Basic をテストします
requirements.txtrequests