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-PoC — Gitea anterior a 1.27.1 permite la ejecución remota de código a través de la API diffpatch mediante la instalación de hooks de Git. | Kitploit
Herramientas/GitHubGitHub/erberkan/cve-2026-60004-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónVirtualización de SeguridadPruebas de PenetraciónRed TeamingHerramienta de Acceso Remoto
GitHuberberkan/cve-2026-60004-poc

CVE-2026-60004-PoC

Gitea anterior a 1.27.1 permite la ejecución remota de código a través de la API diffpatch mediante la instalación de hooks de Git.

Ver Repositorio
hace 1 díaAún no revisado
Sitio web

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: Ejecución remota de código en la API Diffpatch de Gitea

[!WARNING] Este repositorio está destinado exclusivamente a la investigación de seguridad autorizada y a pruebas de laboratorio controladas. No ejecute la prueba de concepto contra sistemas que no posea o para los que no tenga permiso explícito de evaluación.

Descripción general

CVE-2026-60004 es una vulnerabilidad crítica de ejecución remota de código en la API diffpatch de Gitea. Un usuario autenticado con permiso para crear o escribir en un repositorio puede enviar un parche manipulado que provoca que se materialice un hook de Git ejecutable dentro de un repositorio bare temporal. Cuando se activa el hook, los comandos controlados por el atacante se ejecutan con los privilegios de la cuenta de servicio de Gitea.

Si el registro público está habilitado, un atacante no autenticado podría crear una cuenta y alcanzar el endpoint autenticado vulnerable.

AtributoDetalles
IdentificadorCVE-2026-60004
AvisoGHSA-rcr6-4jqh-j84m
GravedadCrítica — CVSS 3.1: 9.8
DebilidadCWE-94: Control inadecuado de la generación de código
Versiones afectadasGitea 1.17.0 hasta 1.27.0
Versión corregidaGitea 1.27.1
Acceso requeridoAcceso de escritura al repositorio
Contexto de ejecuciónCuenta del sistema operativo de Gitea
Fecha CISA KEV2026-08-25

Contenido del repositorio

ArchivoDescripción
gitea_diffpatch_rce.pyPrueba de concepto que solo usa la biblioteca estándar, la cual se autentica, crea un repositorio privado, envía el parche manipulado y recupera la salida del comando.
payload.patchParche de ejemplo que crea un hook ejecutable hooks/post-index-change.
poc.pngCaptura de pantalla tomada durante la validación en laboratorio.
README.mdNotas de investigación originales.

Entorno probado

La prueba de concepto se validó en el siguiente entorno aislado:

ComponenteConfiguración
Gitea1.27.0
Git2.47.2
DespliegueContenedor Docker llamado gitea-lab
Dirección del servicio192.168.184.128:3000
Identidad observadauid=1000(git) gid=1000(git)

La explotación exitosa produjo una salida de comando similar a:

root@kitploit:~
uid=1000(git) gid=1000(git) groups=1000(git)
Linux 6.12.20-amd64 x86_64
/data/gitea/tmp/local-repo/upload.git630501597
[exit-status=0]

Salida de la prueba de concepto

Requisitos previos

  • Python 3.8 o posterior
  • Acceso de red a la instancia de Gitea objetivo
  • Una cuenta válida de Gitea con permisos de creación y escritura de repositorios, o una instancia de laboratorio objetivo con el registro público habilitado
  • Un entorno de prueba explícitamente autorizado

El script solo usa la biblioteca estándar de Python y no requiere paquetes adicionales.

Uso

root@kitploit:~
python3 gitea_diffpatch_rce.py <base_url> <username> <password> "<command>"

Ejemplo para una instancia de laboratorio local:

root@kitploit:~
python3 gitea_diffpatch_rce.py \
  http://127.0.0.1:3000 \
  pocuser \
  'P@ssw0rd!' \
  'id; uname -a'

El script primero intenta el registro web y luego se autentica con las credenciales proporcionadas. Esto permite que el mismo comando funcione tanto con una cuenta nueva en una instancia con registro abierto como con una cuenta existente.

Análisis técnico

La cadena de explotación consta de cuatro etapas:

  1. Envío de parche controlado por el atacante
    POST /api/v1/repos/{owner}/{repo}/diffpatch aplica el contenido del parche proporcionado usando git apply --index --recount --cached --binary --ignore-whitespace --whitespace=fix -3 dentro de un clon temporal.

  2. Colocación de la ruta del hook
    El repositorio temporal se crea como un clon bare compartido. En un repositorio bare, la raíz del repositorio también es $GIT_DIR; en consecuencia, la ruta del parche hooks/post-index-change se resuelve dentro del directorio de hooks activo de Git.

  3. Materialización del hook ejecutable
    El mismo parche se envía dos veces. La segunda aplicación produce un conflicto add/add, lo que provoca que el fallback de tres vías materialice la ruta en disco con modo 100755, a pesar del uso de --cached. Una actualización posterior del índice invoca post-index-change, ejecutando el código shell inyectado como la cuenta de servicio de Gitea.

  4. Recuperación de salida nativa de Git
    El hook identifica el repositorio de origen a través de objects/info/alternates, almacena la salida del comando como un blob de Git, crea un árbol y un commit, y actualiza refs/heads/output-leak. La prueba de concepto luego recupera el resultado a través de la API de archivos raw de Gitea. Esta técnica no requiere una conexión saliente directa desde el objetivo.

Impacto

La explotación exitosa otorga ejecución de comandos con los privilegios de la cuenta de servicio de Gitea. Dependiendo de la configuración del despliegue, un atacante podría acceder a:

  • app.ini y credenciales de la base de datos
  • SECRET_KEY, INTERNAL_TOKEN y secretos relacionados con LFS
  • Repositorios montados o legibles por el proceso de Gitea
  • Variables de entorno del proceso
  • Servicios internos accesibles desde el host o contenedor de Gitea

Se confirmó que la cuenta de laboratorio tenía acceso de lectura a app.ini.

Indicadores de compromiso

Los defensores deben investigar los siguientes artefactos y patrones de solicitudes:

  • Dos solicitudes idénticas o casi idénticas a /api/v1/repos/*/*/diffpatch en rápida sucesión
  • Una rama llamada output-leak
  • Commits autorados por poc <[email protected]>
  • Archivos ejecutables inesperados llamados hooks/post-index-change en repositorios bare o directorios de clones temporales
  • Actividad sospechosa bajo rutas como /data/gitea/tmp/local-repo/upload.git*

Estos indicadores describen la prueba de concepto incluida y no son exhaustivos; un exploit modificado podría usar rutas, refs, identidades o canales de salida diferentes.

Remediación y mitigación

  1. Actualice a Gitea 1.27.1 o posterior. Esta es la remediación recomendada. La corrección cambia el flujo de trabajo afectado para usar un clon temporal no bare.
  2. Restrinja la API diffpatch en el proxy inverso hasta que se complete la actualización, por ejemplo, denegando el acceso a rutas coincidentes /api/v1/.../diffpatch. Valide la regla contra integraciones legítimas antes del despliegue.
  3. Deshabilite el registro público estableciendo DISABLE_REGISTRATION=true si no es operativamente necesario. Esto reduce la accesibilidad no autenticada pero no protege contra usuarios existentes con acceso de escritura a repositorios.
  4. Revise los registros y las refs de los repositorios en busca de los indicadores anteriores, y rote las credenciales o secretos accesibles a la cuenta de Gitea si se sospecha un compromiso.

Para el contenedor de laboratorio usado en esta investigación, la eliminación se puede realizar con:

root@kitploit:~
docker rm -f gitea-lab

Uso responsable

Este material se proporciona para ayudar a los defensores a reproducir, comprender, detectar y remediar la vulnerabilidad. Los operadores deben probar solo en entornos aislados y seguir los requisitos de autorización y divulgación de su organización.

Descargar herramienta