Alerta

Logo de GitLab

Alerta 2026-131 Vulnerabilidad crítica en GitLab (CVE-2026-97229) permite RCE y está siendo explotada activamente

Producto(s) afectado(s): 

ProductoVersiones afectadasVersión corregida
GitLab CE/EE 19.219.2.x anteriores a 19.2.819.2.8 (se recomienda 19.2.9)
GitLab CE/EE 19.319.3.x anteriores a 19.3.519.3.5 (se recomienda 19.3.6)
GitLab CE/EE 19.419.4.x anteriores a 19.4.219.4.2 (se recomienda 19.4.3)

Afecta a todos los tipos de despliegue autogestionado; GitLab.com y GitLab Dedicated ya están corregidos y no requieren acción.

Descripción

Se ha publicado una vulnerabilidad de severidad máxima (CVSSv3.1 10 – CRÍTICO) en GitLab Community Edition —CE— y Enterprise Edition —EE— que permite ejecutar código arbitrario en el servidor mediante una expresión regular especialmente diseñada en la configuración de CI/CD, la misma ha sido etiquetada como CVE-2026-97229. La vulnerabilidad está siendo explotada activamente y existen pruebas de concepto (PoC) públicas.

La falla es un desbordamiento de entero (CWE-190) en el tamaño de un patrón compilado por Onigmo, el motor de expresiones regulares de Ruby, que GitLab utiliza al procesar las expresiones regulares de CI/CD. El mismo defecto de Ruby está asociado también a CVE-2026-93577. El proveedor la corrigió en su Critical Patch Release del 12/10/2026. Según las PoC publicadas, el código se ejecuta con los privilegios del usuario git del servidor.

El proveedor la describe como explotable por un usuario sin autenticación. Sin embargo, investigadores señalan que la cadena de explotación pública requiere poder subir código (push) a un proyecto público, para lo cual basta una cuenta común, un token de acceso o que la instancia tenga el registro abierto; el paso final es una solicitud GET sin credenciales a /api/v4/projects/:id/ci/lint. Por ello, las instancias con registro abierto o con proyectos públicos accesibles desde Internet son las más expuestas.

Se registraron intentos de explotación contra la instancia de GitLab de un proyecto de código abierto (Alpine Linux) el 20 y 21/10/2026, que provocaron caídas de procesos del servidor, y nuevos intentos fallidos el 25 y 26/10/2026; el atacante utilizó una cuenta recién registrada. No hay evidencia de que se haya logrado ejecutar código, aunque el proyecto trató la instancia como comprometida y advirtió que una explotación exitosa puede no dejar caídas ni rastros en los registros web.

El 29/10/2026 la agencia de ciberseguridad de EE. UU. incorporó la vulnerabilidad a su catálogo de vulnerabilidades explotadas conocidas (KEV), con plazo de corrección hasta el 01/11/2026.

Esta vulnerabilidad es distinta de CVE-2026-110264, tratada en la Alerta 2026-118: los parches del 12/10/2026 para CVE-2026-97229 no corrigen CVE-2026-110264.

Mitigación

El proveedor no ofrece una solución alternativa (workaround), y limitar el tiempo de evaluación (Regexp.timeout) o la longitud de las expresiones regulares no protege contra esta vulnerabilidad. Hasta aplicar la actualización, como recomendaciones generales:

  • Desactivar o restringir el registro abierto de usuarios y revisar las cuentas creadas recientemente.
  • Restringir los proyectos públicos y el acceso a la API desde Internet cuando sea posible.
  • Revisar los registros en busca de solicitudes a /api/v4/projects/:id/ci/lint y de errores 502 o caídas de workers posteriores a esas solicitudes, y aplicar las detecciones publicadas por el proveedor. La ausencia de estos indicios no descarta una explotación exitosa.
  • Si hay indicios de compromiso, rotar los tokens y secretos de CI/CD, los tokens de los runners y los secretos de la instancia (gitlab-secrets.json), además de las contraseñas y claves.

Solución

La solución consiste en actualizar cada instancia autogestionada directamente a las versiones indicadas en la Alerta 2026-118, que incluyen la corrección de esta vulnerabilidad y también la de CVE-2026-110264:

  • Ramas afectadas por CVE-2026-97229: 19.2.9, 19.3.6, 19.4.3 o 19.5.1, o posteriores.
  • Resto de las ramas con soporte (afectadas por CVE-2026-110264): 18.11.13, 19.0.10 o 19.1.9.
  • Instalaciones desde el código fuente o con un Ruby propio: además actualizar Ruby a 3.3.13, 3.4.12 o 4.0.9, o posteriores. La corrección es un parche al Ruby que el proveedor incluye en sus paquetes e imágenes oficiales, por lo que actualizar solo GitLab no basta: una instancia actualizada a 19.3.6 con un Ruby propio siguió siendo vulnerable.
  • GitLab.com y GitLab Dedicated: ya están corregidos y no requieren acción.

Se debe priorizar las instancias expuestas a Internet o con registro abierto, sin excluir los servidores internos.

Información adicional: