Tutorial

GitLab CVE-2026-110264: actualice su instancia autoalojada

Seguridad y monitorización11 min de lectura17 pasos

El 21 de octubre de 2026, GitLab publicó correcciones para CVE-2026-110264, un fallo con nota 10.0 que permite ejecutar código en el servidor sin autenticación. Las correcciones del 12 de octubre no bastan y no existe ninguna medida alternativa: solo la actualización protege una instancia autoalojada. Esta guía le da la versión que debe instalar según su rama, la copia de seguridad previa, los comandos para Omnibus y Docker y las comprobaciones posteriores. En un único nodo sin parada intermedia basta una sesión; si no, prevea más tiempo.

Contenido· Qué corrige la publicación de GitLab de octubre de 20261/14
  1. 01Qué corrige la publicación de GitLab de octubre de 2026
  2. 02Qué versión instalar según su rama
  3. 03Está expuesto: la lectura que lo decide
  4. 04Comprobar su versión y preparar la ventana
  5. 05La copia de seguridad primero, y lo que no incluye
  6. 06Actualizar según su instalación
  7. 07Ensaye en una copia cuando la instancia es crítica
  8. 08Indisponibilidad, migraciones, rutas antiguas: los tres temores
  9. 09Mientras se prepara la ventana: reducir la exposición, sin ilusiones
  10. 10Revisar los rastros tras la actualización
  11. 11Si persiste la duda: tratar la instancia como comprometida
  12. 12Solución de problemas: bloqueos frecuentes
  13. 13Una forja en un VPS: qué cambia
  14. 14La documentación oficial

Qué corrige la publicación de GitLab de octubre de 2026

El 21 de octubre de 2026, GitLab publicó una versión correctiva crítica para sus ediciones Community y Enterprise. CVE-2026-110264 es un desbordamiento de entero en el compilador de expresiones regulares: según el aviso, un usuario no autenticado podría ejecutar código arbitrario en el servidor GitLab. El vector CVSS 3.1 que indica una fuente secundaria es AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H, es decir, exposición de red, sin autenticación y sin interacción del usuario. Las versiones afectadas van desde la 7.0 hasta la versión corregida de cada rama.

Varios fallos circulan ahora alrededor del motor de expresiones regulares de GitLab y es fácil confundirlos. CVE-2026-97229, corregida el 12 de octubre de 2026 en las versiones 19.4.2, 19.3.5 y 19.2.8, afectaba al compilador de regex de las configuraciones CI/CD. Esas tres versiones siguen siendo vulnerables a CVE-2026-110264. CVE-2026-85706, un salto de directorio ya explotado, es otro asunto, tratado en nuestro artículo sobre el parche de urgencia o la migración a Gitea. Atención: la versión 19.3.2 que cita como corregida es en sí misma vulnerable a CVE-2026-110264, porque la rama 19.3 solo queda protegida desde 19.3.6. La misma publicación corrige otros once fallos, de gravedad alta a baja: también justifican la actualización, pero no cambian el procedimiento.

Qué versión instalar según su rama

Desplace la tabla

Su ramaEstadoVersión que instalar
19.5.xAfectada antes de 19.5.119.5.1
19.4.xAfectada antes de 19.4.3, incluida 19.4.219.4.3
19.3.xAfectada antes de 19.3.6, incluida 19.3.519.3.6
19.2.xAfectada antes de 19.2.9, incluida 19.2.819.2.9
19.1.xAfectada antes de 19.1.919.1.9
19.0.xAfectada antes de 19.0.1019.0.10
18.11.xAfectada antes de 18.11.1318.11.13
Versión anterior a 18.11Afectada, el rango empieza en 7.0Seguir la ruta de actualización oficial hasta una rama corregida

Está expuesto: la lectura que lo decide

La pregunta no es si su instancia es importante, sino si está autoalojada y por debajo de la versión corregida de su rama. GitLab.com ya está corregido, y los inquilinos de GitLab Dedicated en 19.3.5-internal0 o 19.4.2-internal0 y posteriores ya incluyen las correcciones. Para cualquier instalación que administre usted mismo, en un VPS o en un servidor dedicado, la respuesta es simple: compruebe el número de versión y compárelo con la tabla anterior. Una instancia en 19.4.2 suele creerse al día porque recibió la corrección del 12 de octubre. No lo está.

El aviso no menciona ninguna configuración que anule el fallo. Una instancia accesible desde Internet es evidentemente la más urgente, pero una instancia interna tampoco queda fuera del alcance de un equipo comprometido de la red. En el momento de redactar esto, GitLab no informa de ninguna explotación de CVE-2026-110264 y, según las fuentes consultadas, el fallo no figura en el catálogo de vulnerabilidades explotadas de CISA. Es una ventana para actuar con calma, no un motivo para aplazar.

Comprobar su versión y preparar la ventana

  1. Leer la versión exacta

    En la interfaz, el menú de ayuda muestra la versión. En línea de comandos: sudo gitlab-rake gitlab:env:info. En Docker: docker exec gitlab cat /opt/gitlab/version-manifest.txt. Anote el número completo, no solo la rama.

  2. Identificar la edición instalada

    dpkg -l | grep gitlab en Debian y Ubuntu, rpm -q gitlab-ce gitlab-ee en RHEL y AlmaLinux. El nombre del paquete, gitlab-ce o gitlab-ee, decide el comando de actualización. Las dos ediciones están afectadas.

  3. Verificar la ruta de actualización

    Salte directamente a la versión corregida solo si no se exige ninguna parada intermedia. GitLab precisa que no se puede subir de golpe a la última versión mayor cuando la ruta impone paradas. En ese caso, instale cada parada con su número exacto. La herramienta de ruta de actualización de la documentación oficial da la lista.

  4. Controlar el espacio en disco

    df -h /var/opt/gitlab. El archivo de copia de seguridad y las migraciones necesitan espacio. Una partición casi llena es la primera causa de una actualización interrumpida a mitad.

  5. Anunciar el corte

    En un único nodo, GitLab avisa de que las migraciones deben terminar antes del arranque: la indisponibilidad es normal. Avise a los equipos, deje terminar los pipelines en curso y anote el estado de los runners con sudo gitlab-ctl status.

  6. Guardar una salida de emergencia

    Mantenga abierta una segunda sesión SSH y el número de la versión actual. Si una parada falla, sabrá exactamente a qué versión volver y qué archivo restaurar.

La copia de seguridad primero, y lo que no incluye

El paquete respalda la base de datos automáticamente antes de instalar una versión más reciente. Aun así, GitLab recomienda conservar su propia copia completa y actualizada, y conviene no desactivar ese paso automático (existe para ello el archivo vacío /etc/gitlab/skip-auto-backup). El comando es sudo gitlab-backup create, o docker exec -t gitlab gitlab-backup create para un contenedor llamado gitlab. El archivo es un único .tar, que el parámetro backup_path coloca en local.

La trampa clásica: esta copia no contiene la configuración. Copie aparte /etc/gitlab/gitlab-secrets.json y /etc/gitlab/gitlab.rb, por ejemplo con sudo mkdir -p /root/gitlab-config-backup && sudo cp -a /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab.rb /root/gitlab-config-backup/. Sin gitlab-secrets.json, una restauración deja ilegibles los datos cifrados, como las variables CI/CD y los secretos de autenticación en dos pasos. Después saque ambas copias de la máquina, a un almacenamiento distinto. Solo es posible volver atrás con una copia de la base tomada en la misma versión y edición que la que restaura.

Actualizar según su instalación

  1. Debian y Ubuntu (paquete Omnibus)

    sudo apt update && sudo apt install gitlab-ce=<version>-ce.0
    Sustituya <version> por la versión de la tabla para su rama. Para la edición Enterprise: sudo apt install gitlab-ee=<version>-ee.0.

  2. RHEL, AlmaLinux y Oracle Linux

    sudo dnf install gitlab-ce-<version>-ce.0.el9
    Use .el8 en una máquina de versión 8, y gitlab-ee-<version>-ee.0.el9 para la edición Enterprise.

  3. Docker con docker run

    sudo docker stop gitlab
    sudo docker rm gitlab
    sudo docker pull gitlab/gitlab-ce:<version>-ce.0
    Vuelva a lanzar docker run con exactamente sus opciones originales: mismos puertos, mismos volúmenes para config, logs y data, mismo --shm-size. Los datos viven en los volúmenes, no en el contenedor eliminado.

  4. Docker con Compose

    Edite la etiqueta de la imagen en docker-compose.yml para apuntar a <version>-ce.0 y después:
    docker compose pull
    docker compose up -d
    docker compose logs -f gitlab
    Si su archivo usa una etiqueta flotante, fíjela: una versión anclada hace legible la próxima actualización.

  5. Aplicar la configuración

    En Docker, GitLab se reconfigura y se actualiza en el primer arranque del contenedor. En una instalación por paquete, tras cualquier cambio en gitlab.rb, aplíquelo con sudo gitlab-ctl reconfigure. Deje que las migraciones lleguen al final antes de concluir que la instancia está bloqueada.

  6. Comprobar el resultado

    sudo gitlab-ctl status
    sudo gitlab-rake gitlab:env:info
    La versión mostrada debe ser la de la tabla. Abra la interfaz, verifique que un repositorio se clona, que un pipeline arranca y que los runners se reconectan.

Ensaye en una copia cuando la instancia es crítica

Restaure la copia de seguridad en una máquina desechable de la misma versión, actualícela y cronometre las migraciones. Obtiene la duración real del corte y descubre las sorpresas sin tocar producción. Destruya la copia después: contiene sus secretos.

Indisponibilidad, migraciones, rutas antiguas: los tres temores

Actualizar una forja en producción da miedo por razones concretas, y el aviso de GitLab las responde sin rodeos. Migraciones de base de datos: la publicación incluye algunas, ordinarias en 19.4.3 y 19.3.6, y posteriores al despliegue en 19.4.3. Corte: en un único nodo es esperable, porque las migraciones deben terminar antes del arranque; en varios nodos se aplican los procedimientos de actualización sin interrupción. Versiones antiguas: por debajo de 18.11, siga la ruta de actualización oficial, parada por parada, sin saltarse ninguna.

Lo que no pierde, si la copia de seguridad existe: sus repositorios, sus incidencias, sus runners registrados y sus tokens. El miedo a romperlo todo es legítimo, pero esperar es la apuesta más arriesgada, porque el detalle técnico del fallo debe hacerse público en el seguimiento de incidencias 90 días después de la publicación de la corrección. Más vale actualizar antes de ese día.

Mientras se prepara la ventana: reducir la exposición, sin ilusiones

  • Sin medida alternativa oficial — el aviso de GitLab no enumera ninguna mitigación: la única es la actualización.
  • Restringir el acceso de red — limitar la instancia a su VPN o a una lista de direcciones reduce los atacantes posibles. No es una medida oficial, solo una medida de espera.
  • No inventar una regla de filtrado — ningún filtro nginx publicado cubre este fallo: escribir uno de memoria da una falsa sensación de protección.
  • Vigilar desde ya — aplique las dos reglas de detección publicadas por GitLab, presentadas más abajo, para saber si alguien ya ha intentado algo.
  • Fijar una fecha límite — anote en el equipo una fecha de actualización: una medida de espera sin fecha se convierte en costumbre.

Revisar los rastros tras la actualización

  1. Aplicar las dos reglas de detección

    GitLab publica dos reglas para instancias autoalojadas: "Onigmo native worker crash" y "Org mode render error burst". Tómelas del aviso oficial para su herramienta de supervisión o de registros.

  2. Releer los registros de GitLab

    sudo ls -la /var/log/gitlab y luego sudo gitlab-ctl tail. Busque caídas repetidas de procesos de trabajo y errores de renderizado concentrados en un periodo corto, alrededor del 21 de octubre o antes.

  3. Revisar cuentas y tokens

    En el área de administración, revise los usuarios recientes, los administradores, los tokens de acceso personal y las claves de despliegue. Todo lo que no tenga un autor conocido merece una explicación.

  4. Revisar runners y proyectos

    Liste los runners registrados y los webhooks. Un runner desconocido o un hook añadido recientemente es una puerta de entrada clásica tras una toma de control.

  5. Conservar los registros

    Copie los registros útiles fuera de la máquina antes de dejarlos rotar. Si surge una duda dentro de una semana, tendrá con qué comparar.

Si persiste la duda: tratar la instancia como comprometida

La ausencia de alerta no prueba la ausencia de compromiso: las dos reglas de GitLab detectan síntomas, no todas las intrusiones. Si aparece un indicio (regla de detección activada, cuenta o runner desconocido, caídas agrupadas), trate la instancia como comprometida. Sin indicio, la exposición por sí sola justifica la actualización, no la rotación de todos los secretos. Si hay indicio, renueve los secretos de la instancia, las variables CI/CD, los tokens de runner y los tokens de acceso, y vuelva a registrar los runners. Una variable de pipeline que contenga una clave de despliegue o una contraseña de base de datos debe cambiarse en su origen, no solo en GitLab. Es tedioso, y es el precio de una forja que guarda su código y sus accesos de producción.

Solución de problemas: bloqueos frecuentes

  • E: Version '<version>-ce.0' for 'gitlab-ce' was not found — apt aún no conoce ese número: vuelva a ejecutar sudo apt update, compruebe que el repositorio de GitLab está configurado y revise la ortografía del número y el sufijo -ce.0.
  • No se puede subir directamente a la versión deseada — su instancia exige paradas. Instálelas una a una con su número exacto y deje terminar las migraciones entre dos.
  • Página de error 502 justo después de actualizar — las migraciones siguen en curso. Espere, siga sudo gitlab-ctl tail y no reinicie los servicios a mano hasta que terminen.
  • Contenedor iniciado pero vacío — se volvió a lanzar docker run sin los volúmenes originales. Deténgalo y vuelva a crearlo con las mismas rutas para config, logs y data.
  • Restauración imposible tras una vuelta atrás — la copia debe proceder de la misma versión y de la misma edición. Restaure con la versión que la produjo y vuelva a actualizar.

Una forja en un VPS: qué cambia

Cuando su forja se ejecuta en un VPS donde tiene acceso root, usted decide la ventana de actualización, el lugar de las copias de seguridad y el tiempo de conservación de los registros. Nadie le impone un calendario y nadie actualiza en su lugar: es la contrapartida. Prevea espacio en disco para el archivo, una copia fuera de la máquina y un modo de probar una restauración, como describe nuestra guía sobre copias de seguridad con restic. Para instalar GitLab, nuestra guía de instalación de GitLab CE en un VPS da el punto de partida. Si prefiere delegar la administración del servidor, existe la opción de administración VPS; esta guía se ofrece tal cual, sin soporte para su instancia.

La documentación oficial

Aviso de la versión correctiva GitLab 19.5.1: https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-1-released/

Aviso del 12 de octubre de 2026: https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/

Actualización de un paquete Linux: https://docs.gitlab.com/update/package/

Actualización de una instalación Docker: https://docs.gitlab.com/install/docker/upgrade/

Copia de seguridad de GitLab: https://docs.gitlab.com/administration/backup_restore/backup_gitlab/

Crónica de BleepingComputer: https://www.bleepingcomputer.com/news/security/gitlab-warns-of-new-max-severity-code-execution-vulnerability/

Una forja en un servidor que es realmente suyo

Un VPS con acceso root le permite elegir su ventana de actualización, sus copias de seguridad y sus registros. Si no quiere encargarse usted mismo de la actualización, está disponible la opción de administración VPS, y [email protected] atiende sus preguntas.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva