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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gitea-public-only-pat-org — Giteaの認可バイパスに関するPoCラボ。write:organizationを持つ公開専用PATが、POST /api/v1/orgs経由でプライベート組織を作成する。 | Kitploit
ツール/GitHubGitHub/abraxas/gitea-public-only-pat-org
認証と認可脆弱性分析エクスプロイトセキュリティ仮想化ウェブセキュリティペネトレーションテストAPIセキュリティラボと実践
GitHubabraxas/gitea-public-only-pat-org

gitea-public-only-pat-org

Giteaの認可バイパスに関するPoCラボ。write:organizationを持つ公開専用PATが、POST /api/v1/orgs経由でプライベート組織を作成する。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - gitea-public-only-pat-org

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-public-only-pat-org

gitea-public-only-pat-org

Gitea 1.27.3 - Gitea

PAT における public-only は、そのトークンがプライベートリソースに触れられないという約束であるはずです。POST /user/repos には rejectPublicOnly があります。POST /orgs には tokenRequiresScopes と reqToken があります。しかし rejectPublicOnly はありません。DEFAULT_ALLOW_CREATE_ORGANIZATION はデフォルトで true です。

write:organization を持つ public-only PAT は、プライベート組織を作成します。同じトークンでは、プライベートなユーザーリポジトリを作成できません。

IDCVE 未割当
CWECWE-863
CVSSMedium: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
ProductGitea
Affectedv1.27.3 (146cc3e) まで
Authorg write 権限を持つ public-only PAT
LicenseGNU Affero GPL v3.0
Lab127.0.0.1 のみ

攻撃者ができること

盗まれた、あるいは過剰に発行された public-only PAT で、かつ write:organization も持つものを使用します。プライベート組織を作成します。その組織は、トークンが本来作成できないはずの隠れ場所です。同じトークンでは依然としてプライベートなユーザーリポジトリを作成できず、このバグが他人の既存のプライベート git を開くこともありません。

完全性の問題であり、プライベート git のダンプではありません。被害者が意図的に「public-only」を発行した場合に有用です。つまり CI、ボット、プライベート組織を増やせないと考えていた請負業者トークンなどです。

org リポジトリの作成は org の可視性のみをチェックします。非推奨の POST /org/{org}/repos は public-only を完全にスキップします。私は org 作成をラボ検証しました。それで十分です。

発見の経緯

hostmatcher 0.0.0.0/8 ラボと同じ残存パスの調査です。GHSA の波の後の v1.27.3、そして兄弟ハンドラが既に持っているゲートを依然としてスキップしているハンドラを調べました。可視性とトークンスコープのバグはその波のテーマでした。私は api.go 内で rejectPublicOnly を grep しました。ユーザーリポジトリ作成にはあります。org 作成にはありません。

私はスコープ public-only,write:organization,write:repository,write:user を持つ PAT を発行しました。プライベート org 作成は 201 を返しました。同じトークンで、プライベートなユーザーリポジトリ作成は 403 this endpoint is not available for public-only tokens でした。この 403 が対照です。両方が 201 なら、ミドルウェアは完全に消えていることになります。両方が 403 なら、報告するものは何もありません。

既に記録済みの誤った道:org の HTTP 201 を十分とみなすこと(GET で visibility=private を確認すること)。プライベートなユーザーリポジトリ作成が成功すること(その場合 rejectPublicOnly は消えており、ラボは 403 を要求します)。既存のプライベート git の内容を読むこと。リバースシェル。茶番です。

ラボ

cd lab
./run.sh

対象は http://127.0.0.1:18132 のみ。Compose は DEFAULT_ALLOW_CREATE_ORGANIZATION=true を設定します。

token-scopes=public-only,write:organization,write:repository,write:user
org-create status=201
org-visibility='private'
user-repo-create status=403 this endpoint is not available for public-only tokens
SUCCESS GITEA-PUBLIC-ONLY-PAT

修正

POST /orgs に rejectPublicOnly() を追加し、org リポジトリ作成も public-only に敏感なものとして扱うべきです。public-only の org 作成は、プライベートなユーザーリポジトリ作成が既にそうであるのと同じように 403 を返さなければなりません。

参考資料

  • github.com/go-gitea/gitea タグ v1.27.3
  • api.go (rejectPublicOnly、POST /orgs、POST /user/repos)
  • CWE-863

ライセンス

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

ツールをダウンロード