GitLab emitió un aviso de seguridad sobre CVE-2026-110264, una vulnerabilidad de máxima gravedad (CVSS 10.0) que permite a un atacante ejecutar código arbitrario en el servidor sin necesidad de credenciales. El problema radica en un desbordamiento de entero dentro del compilador de expresiones regulares que GitLab utiliza en varios componentes internos. La falla afecta a todas las versiones de GitLab Community Edition (CE) y Enterprise Edition (EE) anteriores a 19.5.0, lo que equivale a más de una década de lanzamientos. Según datos de Shadowserver, más de 2,700 instancias públicas de GitLab CE están expuestas a Internet, lo que convierte a esta vulnerabilidad en un objetivo atractivo para actores maliciosos.
Qué sabemos
La vulnerabilidad fue descubierta por joaxcar a través de la plataforma HackerOne y reportada a GitLab, que respondió rápidamente publicando versiones parcheadas: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 y 18.11.13. GitLab ha confirmado que, aunque no se ha detectado explotación activa en el wild, la naturaleza de la falla permite que sea weaponizada en cuestión de días. La compañía recomienda a los usuarios actualizar inmediatamente a cualquiera de las versiones corregidas.
El vector de ataque es completamente no autenticado: cualquier actor que pueda enviar una expresión regular maliciosa a un endpoint que la compile podrá desencadenar el desbordamiento y, a través de la corrupción de memoria, ejecutar código arbitrario bajo los privilegios del proceso de GitLab. Dado que GitLab se despliega frecuentemente como servicio crítico en entornos de desarrollo y producción, la exposición de esta vulnerabilidad representa un riesgo de compromiso total del servidor, incluyendo repositorios, credenciales y datos de CI/CD.
Análisis técnico
El desbordamiento ocurre cuando el compilador de regex procesa una cadena que supera los límites de un entero interno, provocando un wrap‑around que permite al atacante sobrescribir estructuras de datos críticas. Desde la perspectiva de los TTPs, la vulnerabilidad encaja en la categoría de Memory Corruption y Code Injection, con una fase de Initial Access basada en la explotación de una funcionalidad pública (p. ej., búsqueda, validación de patrones en pipelines). No se requieren credenciales ni interacción previa con la instancia, lo que la clasifica como Unauthenticated Remote Code Execution.
El impacto potencial es total: una vez que el atacante controla el proceso de GitLab, puede leer o modificar repositorios, extraer tokens de acceso, lanzar jobs de CI con privilegios elevados o incluso pivotar a otros sistemas dentro de la red interna. La falta de mitigaciones en versiones anteriores significa que cualquier instancia expuesta a Internet es un objetivo viable. La rapidez con la que los atacantes pueden crear exploits funcionales sugiere que los equipos de defensa deben asumir que la weaponización es inminente.
Qué deben hacer los equipos de seguridad
- Aplicar inmediatamente el parche correspondiente (
19.5.1o la versión más reciente disponible) en todas las instancias de GitLab CE/EE. - Realizar un inventario completo de los servidores GitLab expuestos a Internet y, de ser posible, restringir el acceso mediante listas de control de acceso (ACL) o firewalls.
- Monitorear los logs de GitLab en busca de patrones de compilación de expresiones regulares inusuales o errores de desbordamiento que puedan indicar intentos de explotación.
- Implementar reglas de detección en los sistemas de prevención de intrusiones (IPS) que alerten sobre payloads que intenten abusar del compilador de regex.
- Considerar la desactivación temporal de funcionalidades que procesen expresiones regulares de forma externa hasta que se confirme que están parchadas.
Fuente: BleepingComputer