Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
gitea-public-only-pat-org — Proof-of-concept lab per un bypass di autorizzazione in Gitea in cui un PAT pubblico con write:organization crea un'organizzazione privata tramite POST /api/v1/orgs. | Kitploit
Strumenti/GitHubGitHub/abraxas/gitea-public-only-pat-org
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitVirtualizzazione per la SicurezzaSicurezza WebPenetration TestingSicurezza delle APILab e Pratica

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
abraxas/gitea-public-only-pat-org

gitea-public-only-pat-org

Proof-of-concept lab per un bypass di autorizzazione in Gitea in cui un PAT pubblico con write:organization crea un'organizzazione privata tramite POST /api/v1/orgs.

Vedi Repository
715 giorni faNon ancora revisionato

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

public-only su un PAT dovrebbe essere la promessa che il token non può toccare risorse private. POST /user/repos ha rejectPublicOnly. POST /orgs ha tokenRequiresScopes e reqToken. Non ha rejectPublicOnly. DEFAULT_ALLOW_CREATE_ORGANIZATION è true per impostazione predefinita.

Un PAT public-only con write:organization crea un'organizzazione privata. Lo stesso token non può creare un repository utente privato.

IDnessuna CVE al momento
CWECWE-863
CVSSMedium: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
ProdottoGitea
Affettofino alla v1.27.3 (146cc3e)
AuthPAT public-only con org write
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Usare un PAT public-only rubato o emesso in eccesso che abbia anche write:organization. Creare un'organizzazione privata. Quell'org è un nascondiglio che il token non avrebbe dovuto poter creare. Lo stesso token continua a non poter creare un repository utente privato, e questo bug non apre il git privato esistente di qualcun altro.

Integrità, non un dump di git privato. Utile quando la vittima ha emesso "public-only" di proposito: CI, un bot, un token per un contractor che pensava non potesse far crescere un'org privata.

La creazione di org-repo controlla solo la visibilità dell'org. Il deprecato POST /org/{org}/repos salta del tutto il public-only. Ho testato in lab la creazione di org. È sufficiente.

Come l'ho trovato

Stesso passaggio di residui del lab hostmatcher 0.0.0.0/8: v1.27.3 dopo l'ondata di GHSA, poi gli handler che ancora saltano un gate che un sibling ha già. Bug di visibilità e di scope dei token erano un tema di quell'ondata. Ho fatto grep di rejectPublicOnly in api.go. La creazione di user-repo lo ha. La creazione di org no.

Ho generato un PAT con scope public-only,write:organization,write:repository,write:user. La creazione di org privata ha restituito 201. Stesso token, creazione di user-repo privato, 403 this endpoint is not available for public-only tokens. Quel 403 è il controllo. Se entrambi avessero dato 201, il middleware sarebbe del tutto assente. Se entrambi avessero dato 403, non ci sarebbe nulla da segnalare.

Vicoli ciechi già registrati: considerare sufficiente l'HTTP 201 dell'org (confermare visibility=private su GET); la creazione di user-repo privato che riesce (allora rejectPublicOnly è assente - il lab richiede 403); leggere il contenuto di git privato esistente; una reverse shell. Teatro.

Lab

cd lab
./run.sh

Target solo http://127.0.0.1:18132. Compose imposta 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

La correzione

Mettere rejectPublicOnly() su POST /orgs, e trattare anche la creazione di org-repo come sensibile al public-only. La creazione di org public-only deve restituire 403 allo stesso modo in cui la creazione di user-repo privato già lo fa.

Riferimenti

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

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento