Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-60004-PoC — Gitea precedente alla 1.27.1 consente l'esecuzione di codice remoto tramite l'API diffpatch attraverso l'installazione di Git hook. | Kitploit
Strumenti/GitHubGitHub/erberkan/cve-2026-60004-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitVirtualizzazione per la SicurezzaPenetration TestingRed TeamingStrumento di Accesso Remoto
GitHuberberkan/cve-2026-60004-poc

CVE-2026-60004-PoC

Gitea precedente alla 1.27.1 consente l'esecuzione di codice remoto tramite l'API diffpatch attraverso l'installazione di Git hook.

Vedi Repository
1 giorno faNon ancora revisionato
Sito web

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

CVE-2026-60004: Esecuzione di codice remoto nell'API Diffpatch di Gitea

[!WARNING] Questo repository è destinato esclusivamente alla ricerca di sicurezza autorizzata e a test di laboratorio controllati. Non eseguire il proof of concept contro sistemi di cui non si è proprietari o per i quali non si dispone di esplicita autorizzazione alla valutazione.

Panoramica

CVE-2026-60004 è una vulnerabilità critica di esecuzione di codice remoto nell'API diffpatch di Gitea. Un utente autenticato con permesso di creare o scrivere su un repository può inviare una patch appositamente predisposta che causa la materializzazione di un hook Git eseguibile all'interno di un repository bare temporaneo. Quando l'hook viene attivato, i comandi controllati dall'attaccante vengono eseguiti con i privilegi dell'account di servizio Gitea.

Se la registrazione pubblica è abilitata, un attaccante non autenticato potrebbe essere in grado di creare un account e raggiungere l'endpoint autenticato vulnerabile.

AttributoDettagli
IdentificatoreCVE-2026-60004
AdvisoryGHSA-rcr6-4jqh-j84m
GravitàCritica — CVSS 3.1: 9.8
DebolezzaCWE-94: Controllo improprio della generazione di codice
Versioni interessateGitea dalla 1.17.0 alla 1.27.0
Versione correttaGitea 1.27.1
Accesso richiestoAccesso in scrittura al repository
Contesto di esecuzioneAccount del sistema operativo di Gitea
Data CISA KEV2026-08-25

Contenuto del repository

FileDescrizione
gitea_diffpatch_rce.pyProof of concept basato solo sulla libreria standard che si autentica, crea un repository privato, invia la patch appositamente predisposta e recupera l'output dei comandi.
payload.patchPatch di esempio che crea un hook eseguibile hooks/post-index-change.
poc.pngScreenshot catturato durante la validazione in laboratorio.
README.mdNote di ricerca originali.

Ambiente testato

Il proof of concept è stato validato nel seguente ambiente isolato:

ComponenteConfigurazione
Gitea1.27.0
Git2.47.2
DistribuzioneContainer Docker denominato gitea-lab
Indirizzo del servizio192.168.184.128:3000
Identità osservatauid=1000(git) gid=1000(git)

Lo sfruttamento riuscito ha prodotto un output dei comandi simile a:

root@kitploit:~
uid=1000(git) gid=1000(git) groups=1000(git)
Linux 6.12.20-amd64 x86_64
/data/gitea/tmp/local-repo/upload.git630501597
[exit-status=0]

Output del proof-of-concept

Prerequisiti

  • Python 3.8 o successivo
  • Accesso di rete all'istanza Gitea di destinazione
  • Un account Gitea valido con permessi di creazione e scrittura del repository, oppure un'istanza di laboratorio di destinazione con registrazione pubblica abilitata
  • Un ambiente di test esplicitamente autorizzato

Lo script utilizza solo la libreria standard di Python e non richiede pacchetti aggiuntivi.

Utilizzo

root@kitploit:~
python3 gitea_diffpatch_rce.py <base_url> <username> <password> "<command>"

Esempio per un'istanza di laboratorio locale:

root@kitploit:~
python3 gitea_diffpatch_rce.py \
  http://127.0.0.1:3000 \
  pocuser \
  'P@ssw0rd!' \
  'id; uname -a'

Lo script tenta prima la registrazione web, poi si autentica con le credenziali fornite. Ciò consente allo stesso comando di funzionare sia con un nuovo account su un'istanza con registrazione aperta sia con un account esistente.

Analisi tecnica

La catena di sfruttamento è composta da quattro fasi:

  1. Invio della patch controllata dall'attaccante
    POST /api/v1/repos/{owner}/{repo}/diffpatch applica il contenuto della patch fornito utilizzando git apply --index --recount --cached --binary --ignore-whitespace --whitespace=fix -3 all'interno di un clone temporaneo.

  2. Posizionamento del percorso dell'hook
    Il repository temporaneo viene creato come clone bare e condiviso. In un repository bare, la radice del repository è anche $GIT_DIR; di conseguenza, il percorso della patch hooks/post-index-change viene risolto all'interno della directory degli hook attivi di Git.

  3. Materializzazione dell'hook eseguibile
    La stessa patch viene inviata due volte. La seconda applicazione produce un conflitto add/add, causando il fallback a tre vie che materializza il percorso su disco con modalità 100755, nonostante l'uso di --cached. Un successivo aggiornamento dell'indice invoca post-index-change, eseguendo il codice shell iniettato come account di servizio Gitea.

  4. Recupero dell'output nativo di Git
    L'hook identifica il repository di origine tramite objects/info/alternates, memorizza l'output dei comandi come blob Git, crea un tree e un commit, e aggiorna refs/heads/output-leak. Il proof of concept recupera quindi il risultato tramite l'API dei file raw di Gitea. Questa tecnica non richiede una connessione in uscita diretta dal target.

Impatto

Lo sfruttamento riuscito concede l'esecuzione di comandi con i privilegi dell'account di servizio Gitea. A seconda della configurazione di distribuzione, un attaccante potrebbe essere in grado di accedere a:

  • app.ini e credenziali del database
  • SECRET_KEY, INTERNAL_TOKEN e segreti relativi a LFS
  • Repository montati o leggibili dal processo Gitea
  • Variabili d'ambiente del processo
  • Servizi interni raggiungibili dall'host o dal container Gitea

È stato confermato che l'account di laboratorio aveva accesso in lettura a app.ini.

Indicatori di compromissione

I difensori dovrebbero investigare i seguenti artefatti e pattern di richieste:

  • Due richieste identiche o quasi identiche a /api/v1/repos/*/*/diffpatch in rapida successione
  • Un branch denominato output-leak
  • Commit attribuiti a poc <[email protected]>
  • File eseguibili inattesi denominati hooks/post-index-change in repository bare o directory di clone temporanee
  • Attività sospetta sotto percorsi come /data/gitea/tmp/local-repo/upload.git*

Questi indicatori descrivono il proof of concept incluso e non sono esaustivi; un exploit modificato potrebbe utilizzare percorsi, ref, identità o canali di output diversi.

Correzione e mitigazione

  1. Aggiornare a Gitea 1.27.1 o successivo. Questa è la correzione raccomandata. La correzione modifica il flusso di lavoro interessato per utilizzare un clone temporaneo non bare.
  2. Limitare l'API diffpatch sul reverse proxy fino al completamento dell'aggiornamento, ad esempio negando l'accesso alle route /api/v1/.../diffpatch corrispondenti. Validare la regola rispetto alle integrazioni legittime prima della distribuzione.
  3. Disabilitare la registrazione pubblica impostando DISABLE_REGISTRATION=true se non è operativamente necessaria. Ciò riduce la raggiungibilità non autenticata ma non protegge dagli utenti esistenti con accesso in scrittura al repository.
  4. Esaminare i log e i ref dei repository per gli indicatori sopra riportati, e ruotare le credenziali o i segreti accessibili all'account Gitea se si sospetta una compromissione.

Per il container di laboratorio utilizzato in questa ricerca, la dismissione può essere eseguita con:

root@kitploit:~
docker rm -f gitea-lab

Uso responsabile

Questo materiale è fornito per aiutare i difensori a riprodurre, comprendere, rilevare e correggere la vulnerabilità. Gli operatori dovrebbero testare solo in ambienti isolati e seguire i requisiti di autorizzazione e divulgazione della propria organizzazione.

Scarica lo strumento