top of page

GitLab corrige dos vulnerabilidades críticas de RCE explotables mediante expresiones regulares en pipelines de CI/CD

hace 1 día
3 min de lectura

GitLab ha lanzado actualizaciones de seguridad urgentes para resolver once vulnerabilidades en sus ediciones Community (CE) y Enterprise (EE), destacando dos fallos críticos calificados con una puntuación CVSS de 9.9 sobre 10. El aviso, catalogado por INCIBE-CERT bajo el identificador INCIBE-2026-663 con severidad crítica, alerta de que atacantes autenticados pueden lograr la ejecución remota de código (RCE) en el servidor manipulando expresiones regulares en las configuraciones de integración y despliegue continuo (CI/CD). La amenaza afecta de forma directa a las organizaciones con infraestructuras autogestionadas (self-managed), donde el compromiso de la plataforma expone el código fuente, las credenciales de despliegue y los secretos de producción, abriendo la puerta a ataques directos a la cadena de suministro (supply chain).


Desarrollo / Análisis técnico

Ambos fallos críticos radican en el procesamiento y compilación de expresiones regulares (regex) que gestiona el motor de CI/CD de GitLab al evaluar directivas dentro de archivos como .gitlab-ci.yml:   

  • CVE-2026-89078 (CVSS 9.9 — Severidad Crítica): Consiste en un fallo de liberación doble de memoria (Double-Free) en el analizador sintáctico (parser) de expresiones regulares de GitLab. Al procesar un patrón de regex manipulado dentro de una configuración de pipeline, el servicio libera dos veces el mismo puntero de memoria en el heap, corrompiendo la estructura de asignación y permitiendo redirigir el flujo de ejecución hacia código arbitrario bajo el contexto de ejecución del servidor de GitLab.   

  • CVE-2026-93577 (CVSS 9.9 — Severidad Crítica): Se trata de un desbordamiento de enteros (Integer Overflow) en el compilador de expresiones regulares de la plataforma. Al compilar patrones complejos o deliberadamente anómalos enviados a través del pipeline, el cálculo del tamaño de los búferes de memoria falla, habilitando escrituras fuera de límites que culminan igualmente en la ejecución arbitraria de comandos en el host.


Vector de acceso y superficie interna:

El vector de ataque exige autenticación previa. Sin embargo, no requiere privilegios administrativos ni roles elevados: basta con que el atacante posea una cuenta con permisos mínimos para crear, editar o enviar cambios en la configuración de un pipeline en un proyecto. En entornos empresariales donde desarrolladores externos, contratistas o cuentas de servicio automatizadas disponen de acceso a repositorios, la barrera de autenticación deja de ser una contención suficiente, trasladando el riesgo a cualquier identidad corporativa comprometida.


Alcance e impacto verificado

  • Software afectado:   

    • GitLab CE y EE ramas 19.2 (versiones anteriores a la 19.2.7).   

    • GitLab CE y EE ramas 19.3 (versiones anteriores a la 19.3.3).   

    • GitLab CE y EE ramas 19.4 (versiones anteriores a la 19.4.1).   

    • Despliegues heredados con componentes vulnerables arrastrados desde versiones intermedias (INCIBE-CERT señala afección desde versiones 13.11 en componentes base de procesado de CI/CD).

  • Estado de explotación en el entorno real:   

    No consta explotación activa (in the wild) confirmada ni por INCIBE-CERT ni por el fabricante en el momento de la emisión del aviso. No se han hecho públicos exploits funcionales con cadena de ataque completa.   

  • Entornos SaaS frente a despliegues locales:

    • GitLab.com y GitLab Dedicated: El fabricante aplicó los parches directamente en su infraestructura gestionada; los clientes de estos servicios no requieren intervención operativa.   

    • Instancias Self-Managed: Todo despliegue local o sobre infraestructura privada permanece expuesto hasta que los administradores apliquen la actualización de forma manual.   

  • Consecuencias operativas:

    Compromiso total de la confidencialidad, integridad y disponibilidad del servidor de CI/CD. Un atacante con RCE en esta máquina puede exfiltrar variables de entorno protegidas, claves SSH, tokens de API hacia nubes públicas o registros de contenedores, así como manipular el código fuente antes de su compilación y despliegue final hacia entornos productivos.


Mitigación y recomendaciones   

  1. Actualización inmediata de versiones:   

    Aplicar el parche de seguridad correspondiente a la rama en producción:

    • Actualizar a GitLab 19.4.1.   

    • Actualizar a GitLab 19.3.3.   

    • Actualizar a GitLab 19.2.7.   

      (En arquitecturas multi-nodo, seguir el procedimiento oficial de actualización sin caída de servicio — zero-downtime).   

  2. Revisión de privilegios en pipelines:

    Restringir el control sobre ramas protegidas y limitar qué roles pueden alterar o fusionar modificaciones que afecten al archivo .gitlab-ci.yml. Reducir el acceso de cuentas temporales o externas a la edición directa de tareas de integración.

  3. Auditoría de configuraciones e indicadores de compromiso (IoC):

    • Inspeccionar los registros de eventos de auditoría de GitLab (audit logs) en busca de cambios recientes o inusuales en expresiones regulares dentro de las definiciones de CI/CD.   

    • Monitorizar ejecuciones anómalas en los GitLab Runners o comportamientos atípicos en los procesos que interactúan con el demonio de la aplicación.

    • Si existen sospechas de intrusión previa o acceso indebido a variables de depuración, rotar de inmediato los tokens, secretos y certificados de despliegue vinculados a la instancia.


Fuentes   

 
 
 

Comentarios


bottom of page