Ilustración de un árbol de ramas de Git con un submódulo sustituido por un enlace malicioso

Git corrige seis fallos, uno permite ejecutar código al clonar con submódulos

El proyecto Git ha publicado el 10 de noviembre de 2026 nuevas versiones que corrigen seis vulnerabilidades. La más grave, CVE-2026-111760, permite ejecutar código en el equipo de la víctima cuando esta clona de forma recursiva un repositorio malicioso con submódulos. Las correcciones están en Git 2.56.1 y en las versiones de mantenimiento 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 y 2.50.2.

Las claves de las vulnerabilidades de Git en 30 segundos

  • CVE-2026-111760 permite ejecutar código al clonar con --recurse-submodules un repositorio malicioso.
  • Los otros cinco fallos afectan a referencias, fusiones, parches binarios y fast-import.
  • Las versiones corregidas son 2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 y 2.50.2.
  • GitHub ya ha parcheado github.com y publica versiones de GitHub Enterprise Server.
  • También hay que actualizar las aplicaciones que incluyen su propia copia de Git.

Elijah Newren, ingeniero de GitHub, explica en el blog de la compañía que los fallos incluyen ejecución de código arbitrario, escrituras en ficheros no previstos y corrupción de memoria al procesar fusiones o parches binarios. Ni el proyecto ni GitHub han publicado puntuaciones CVSS en el anuncio, ni señalan explotación activa.

Un nombre largo que se convierte en .git

Git comprueba las rutas antes de escribir ficheros en el directorio de trabajo y rechaza las que sobrescribirían sus propios metadatos. CVE-2026-111760 aprovecha un truncamiento de enteros en la gestión del índice: una ruta extremadamente larga pasa la validación con un nombre y luego se escribe con otro más corto, que el atacante puede hacer coincidir con .git. Así puede sustituir el fichero .git de un submódulo por un enlace simbólico a un directorio con configuración o hooks maliciosos, que Git acaba ejecutando durante el clonado recursivo.

El truco funciona porque, en un submódulo recién clonado, .git es un fichero y no una carpeta, y Git no permite reemplazar carpetas .git por enlaces. La corrección rechaza las rutas de índice extremadamente largas antes de que su longitud pueda truncarse, y la versión añade comprobaciones de desbordamiento en otras reservas de memoria relacionadas.

Los otros cinco fallos

  • CVE-2026-113408: al clonar un repositorio vacío con el protocolo v2, un servidor malicioso puede anunciar un HEAD con componentes de salto de directorio. Con el backend de referencias por ficheros, una actualización posterior puede escribir fuera del directorio de referencias.
  • CVE-2026-114467: al quitar firmas GPG, Git suponía un máximo de dos. Fusionar una etiqueta con más firmas corrompe la pila y puede provocar una denegación de servicio, también en servicios de alojamiento que hacen fusiones por los usuarios.
  • CVE-2026-114469: un parche binario pequeño pero que se expande por encima del límite de aproximadamente 1 GiB provoca una lectura fuera de límites y cierra Git.
  • CVE-2026-105437: un desbordamiento al calcular el tamaño de una fusión muy grande, por ejemplo con muchos conflictos y un atributo conflict-marker-size alto, corrompe la memoria del heap. Afecta a servicios que fusionan contenido no confiable y a fusiones locales.
  • CVE-2026-114466: tres funciones de git fast-import (rewrite-submodules-from, rewrite-submodules-to y export-pack-edges) podían leer ficheros arbitrarios o crear y modificar ficheros. Ahora se rechazan si llegan en el flujo de entrada, salvo que se active --allow-unsafe-features.

Según The Hacker News, CVE-2026-105437 lo asignó GitLab, que considera que los servidores que ejecutan git merge-tree son los objetivos más probables y propone como medida temporal fijar conflict-marker-size=7 en el fichero info/attributes de cada repositorio.

Cómo protegerse

La medida eficaz es actualizar a Git 2.56.1 o a la versión corregida de la rama que se use, desde el sistema operativo o el distribuidor habitual, y revisar las aplicaciones que traen su propio Git, así como los servidores de automatización y CI que procesan repositorios de terceros. Para comprobar la versión instalada basta con git --version.

GitHub ya ha desplegado las correcciones en github.com y GitHub Enterprise Cloud, y las publica para GitHub Enterprise Server en las versiones 3.19.15, 3.20.11, 3.21.9 y 3.22.4. GitHub Desktop, la app de GitHub Copilot, Codespaces y Actions recibirán versiones parcheadas. Según The Hacker News, en el momento de su publicación Git for Windows aún no tenía versión basada en 2.56.1. Mientras no se pueda actualizar, conviene clonar solo de servidores de confianza, evitar git clone --recurse-submodules con repositorios desconocidos y no fusionar contenido o etiquetas, ni procesar parches binarios o flujos de fast-import, de origen no confiable. Estas precauciones no sustituyen al parche.

Preguntas frecuentes

¿Qué versión de Git corrige las vulnerabilidades?

Git 2.56.1 y las versiones de mantenimiento 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 y 2.50.2.

¿Qué permite CVE-2026-111760?

Ejecutar código en el equipo de quien clone de forma recursiva un repositorio malicioso con submódulos.

¿Está protegido GitHub?

Sí en github.com y Enterprise Cloud. Enterprise Server debe actualizarse a 3.19.15, 3.20.11, 3.21.9 o 3.22.4.

¿Qué hago si no puedo actualizar ya?

Evitar clonados recursivos de repositorios desconocidos y no fusionar contenido, etiquetas ni parches de origen no confiable.

Fuentes:

Scroll al inicio