
El 21 de octubre GitLab soltó un parche fuera de su calendario, y los fuera de calendario nunca son buenos signo. En la misma lista salieron siete versiones (19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 y 18.11.13) por una vulnerabilidad con CVSS 10.0: CVE-2026-110264, un desbordamiento de enteros al compilar una expresión regular especialmente armada que permite a un usuario no autenticado ejecutar código arbitrario en el servidor. Cero interacción, cero credenciales. CVSS 10.0 de verdad, no del inflado de costumbre.
La regex es código, y tu servidor la compila
Lo que me gusta a nivel forense de este CVE es el detalle: GitLab usa Onigmo (el motor de expresiones regulares de Ruby) y las detecciones que publicaron hablan de crashes de workers nativos y ráfagas de errores al renderizar archivos Org. O sea, alguien compila tu regex en C, con aritmética de enteros que no chequea los límites, y le pasas un patrón hecho a mano para desbordar el buffer. La regex siempre se vendió como "el usuario manda un patrón de texto", pero es un mini-lenguaje: se parsea, se compila, se ejecuta. El mismo error conceptual que nos tomó décadas digerir en los deserializadores.
Lo afectado arranca en la versión 7.0 de GitLab CE/EE, o sea prácticamente toda la historia del producto con ese motor. El reporte llegó por HackerOne (joaxcar), y aparte del overflow de enteros la release incluye parches de double-free en los builds de Ruby 3.3 y 3.4. Una mala semana para el mundo regexp.
Y a la misma hora, en la otra orilla: musl
Mientras todo el mundo corría a parchear GitLab, Rich Felker (el creador de musl libc) publicaba en la lista oss-security el CVE-2026-107891: múltiples desbordamientos de enteros en regcomp, la función de musl que compila regex. ¿Y desde cuándo? Desde la versión 0.5.0. Hablo de un bug latente en la libc "pulcra" — la que usan todos los contenedores Alpine de tus deployments — durante veinticinco años. Del 0.5.0 al 1.2.6 inclusive. La versión 1.2.7 viene en camino y mientras tanto circula un parche adjunto al propio correo.
El matiz importante que la gente va a leer rápido o ignorar: para ser vulnerable, tu aplicación tiene que compilar regex que vienen de una fuente no confiable usando regcomp. Si tu servicio recibe patrones de búsqueda del usuario, o validas entradas con regex armadas dinámicamente con datos del cliente, revisalo. El impacto mínimo es un crash predecible, y dependiendo de la aplicación también puede llegar a ejecución de código. La condición es del patrón, no del texto a matchear.
Mi lectura
Administro un puñado de VPS y esta semana me tocó reciclar PHP por otro CVE, así que ya hay fatiga de parcheo. Pero el criterio sigue siendo uno: exposición. Un RCE no autenticado con CVSS 10.0 en un GitLab con login abierto a internet salta al inicio de la cola sí o sí. Si tienes tu instancia self-managed: actualiza ya, y ten presente que estos parches vienen con migraciones de base de datos — en single-node eso significa downtime durante el upgrade, planificación no opcional.
En lo que a mí respecta, la lección de la semana no es "cachar los boletines", es más incómoda: el código que se compila a partir de algo que un tercero te puede escribir (una regex, un patrón, un template) es superficie de ataque de primera clase, aunque el motor lleve décadas demostrando que funciona. Dos casos idénticos en 24 horas, uno en el motor que corren millones de apps Ruby desde hace años y otro en la libc de todos los contenedores, no es coincidencia: es un patrón que conviene grabarse.
Si corres GitLab CE/EE: patchea a 19.5.1 o el backport de tu rama (los fixes llegaron hasta 18.11.13) y activa las dos detecciones que publica el equipo de seguridad de GitLab. Si tus contenedores van sobre Alpine: pon la mirada en la 1.2.7 de musl, porque cuando llegue a los repos de la distro, los rebuilds de todas tus imágenes van a ser obligatorios.
Fuente del tema: GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13 (y el aviso de CVE-2026-107891 en la lista oss-security de musl).
Fuente de inspiración: GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13