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-19478 — Detecta CVE-2026-19478 en GitLab CE/EE con una plantilla Nuclei no destructiva que activa la invocación del método fallback-field de GraphQL mediante touch y confirma instancias vulnerables sin llamadas destructivas. | Kitploit
Herramientas/GitHubGitHub/renzi25031469/cve-2026-19478
Escáneres de Vulnerabilidades WebAnálisis de VulnerabilidadesExplotación de Aplicaciones WebPruebas de Seguridad de APIsRecopilación de InformaciónSeguridad WebPruebas de Penetración
GitHub

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
renzi25031469/cve-2026-19478

CVE-2026-19478

Detecta CVE-2026-19478 en GitLab CE/EE con una plantilla Nuclei no destructiva que activa la invocación del método fallback-field de GraphQL mediante touch y confirma instancias vulnerables sin llamadas destructivas.

Ver Repositorio
hace 2 díasAún no revisado

CVE-2026-19478 — invocación arbitraria de métodos mediante el campo de reserva de GitLab GraphQL — plantilla de detección de Nuclei

CVE Severity Nuclei Target License

CVE-2026-19478 — Plantilla de Nuclei

Plantilla de detección no destructiva de Nuclei para CVE-2026-19478, una vulnerabilidad crítica (CVSS 9.4) de invocación arbitraria de métodos sin autenticación en la API GraphQL de GitLab, corregida por GitLab el 17 de agosto de 2026.

TL;DR

El esquema GraphQL de GitLab admite una directiva @gl_introduced(version: "X.Y.Z") que restringe un campo a una versión mínima de GitLab. Cuando la directiva hace referencia a una versión más reciente que la instancia en ejecución, GitLab genera un campo de reserva para el nombre de campo (que de otro modo sería desconocido). Ese resolver de reserva llama a object.public_send(method_name) directamente sobre el objeto Ruby subyacente — Project, User y similares — sin volver a comprobar la autorización.

El resultado: un atacante no autenticado que pueda acceder a /api/graphql y conozca el fullPath de cualquier proyecto público (o el nombre de usuario de cualquier perfil público) puede invocar cualquier método público sin argumentos en ese objeto. Eso incluye métodos de solo lectura como touch, pero también destructivos como destroy / delete, y mutadores de estado como deactivate / block / ban.

La plantilla de este repositorio solo llama a touch (actualiza updated_at, devuelve true) — consulte Seguridad a continuación.

Versiones afectadas

Solo GitLab CE/EE autoadministrado — GitLab.com y GitLab Dedicated no se vieron afectados.

Seguridad

Esta plantilla está deliberadamente desarmada para escanear flotas de servidores que tenga autorización para probar:

  • Solo invoca touch a través del campo de reserva (un método de ActiveRecord que simplemente actualiza updated_at y devuelve true).
  • Nunca llama a destroy, delete, deactivate, block ni ban — todos ellos accesibles a través de la misma vulnerabilidad y genuinamente destructivos.
  • La detección es oportunista: enumera un proyecto público mediante la API REST y, si no hay ninguno visible, recurre a sondear el perfil de usuario root por defecto. Si ninguno es accesible, simplemente informa "not detected" en lugar de adivinar.

No reutilice la consulta GraphQL de esta plantilla para invocar métodos mutadores contra sistemas que no sean suyos o para los que no tenga autorización escrita explícita para probar.

Cómo funciona la detección

Una instancia parcheada rechaza el campo desconocido de plano ("... doesn't exist on type ..."), por lo que el matcher de la plantilla requiere la señal positiva de touch y la ausencia de ese mensaje de rechazo.

Uso

root@kitploit:~
# single target
nuclei -t CVE-2026-19478.yaml -u https://gitlab.example.com

# validate the template itself
nuclei -t CVE-2026-19478.yaml -validate

# a list of targets, JSON output
nuclei -t CVE-2026-19478.yaml -l targets.txt -j -o results.json

Requiere nuclei v3 (esta plantilla utiliza el bloque de protocolo http: y un extractor json de estilo jq introducidos en el motor de plantillas v3; no se cargará en nuclei v2.x).

Ejemplo de salida

root@kitploit:~
[CVE-2026-19478] [http] [critical] https://gitlab.example.com/api/graphql

Remediación

Actualice a 18.11.11, 19.0.8, 19.1.6 o 19.2.4 (o posterior). Consulte las notas de la versión de parche 19.2.4 de GitLab para ver el aviso completo.

Referencias

  • Notas de la versión de parche 19.2.4 de GitLab
  • The Hacker News — Una falla crítica de GraphQL en GitLab podría permitir a atacantes no autenticados eliminar proyectos públicos
  • Rescana — Análisis técnico de CVE-2026-19478
  • PoC (davkharrr/CVE-2026-19478-PoC)

Descargo de responsabilidad

Esta plantilla se publica con fines de seguridad defensiva: escanear infraestructura que usted posea o para la que esté explícitamente autorizado a realizar pruebas. Ejecutarla (o el PoC enlazado) contra sistemas sin autorización es ilegal en la mayoría de las jurisdicciones. El autor no asume ninguna responsabilidad por el mal uso.

Licencia

MIT

Descargar herramienta
SerieAfectadasCorregida
18.2.x – 18.11.x>= 18.2, < 18.11.1118.11.11
19.0.x< 19.0.819.0.8
19.1.x< 19.1.619.1.6
19.2.x< 19.2.419.2.4
PasoSolicitudPropósito
1GET /api/v4/projects?visibility=publicBuscar un proyecto público para usarlo como objetivo inofensivo
2POST /api/graphql — touch @gl_introduced(version: "999.0.0") en ese proyectoActivar el resolver del campo de reserva; una instancia vulnerable devuelve "touch": true
3 (reserva)POST /api/graphql — misma consulta contra user(username: "root")Se usa solo si no se encontró ningún proyecto público en el paso 1