Investigadores de ciberseguridad han revelado detalles de una vulnerabilidad de seguridad crítica que afecta a GitHub.com y GitHub Enterprise Server y que podría permitir a un usuario autenticado obtener la ejecución remota de código con un solo comando «git push».
El defecto, rastreado como CVE-2026-3854 (Puntuación CVSS: 8,7), es un caso de inyección de comandos que podría permitir a un atacante con acceso push a un repositorio lograr la ejecución remota de código en la instancia.
«Durante una operación de git push, los valores de las opciones de inserción proporcionados por el usuario no se desinfectaron adecuadamente antes de incluirlos en los encabezados de servicio internos», según un Aviso de GitHub por la vulnerabilidad. «Debido a que el formato del encabezado interno utiliza un carácter delimitador que también podría aparecer en la entrada del usuario, un atacante podría inyectar campos de metadatos adicionales a través de valores de opciones de inserción diseñados».
A la empresa de seguridad en la nube Wiz, propiedad de Google, se le atribuye el mérito de descubrir e informar el problema el 4 de marzo de 2026, y GitHub validó e implementó una solución en GitHub.com en dos horas.
La vulnerabilidad también se solucionó en las versiones 3.14.25, 3.15.20, 3.16.16, 3.17.13, 3.18.8, 3.19.4, 3.20.0 o posteriores de GitHub Enterprise Server. No hay evidencia de que el problema haya sido explotado alguna vez en un contexto malicioso.
Según GitHub, el problema afecta a GitHub.com, GitHub Enterprise Cloud, GitHub Enterprise Cloud con residencia de datos, GitHub Enterprise Cloud con usuarios administrados empresariales y GitHub Enterprise Server.
En esencia, el problema surge del hecho de que los usuarios opciones de inserción de git no se desinfectan adecuadamente antes de que los valores se incorporaran al encabezado interno X-Stat. Debido a que el formato de metadatos internos se basa en un punto y coma como carácter delimitador que también podría aparecer en la entrada del usuario, un mal actor podría aprovechar este descuido para inyectar comandos arbitrarios y ejecutarlos.
«Al encadenar varios valores inyectados, los investigadores demostraron que un atacante podría anular el entorno en el que se procesó el envío, evitar las protecciones de espacio aislado que normalmente limitan la ejecución del enlace y, en última instancia, ejecutar comandos arbitrarios en el servidor», dijo el director de seguridad de la información de GitHub, Alexis Wales. dicho.
Wiz, en un anuncio coordinado, señaló que el problema es «notablemente fácil» de explotar y agregó que permite la ejecución remota de código en nodos de almacenamiento compartido. Alrededor del 88% de los casos son actualmente vulnerables al problema en el momento de su divulgación pública. La cadena de ejecución remota de código encadena tres inyecciones:
- Inyectar una no producción rieles_env valor para omitir la zona de pruebas
- Inyectar dir_ganchos_personalizados para controlar para redirigir el directorio de gancho
- Inyectar repo_pre_receive_hooks con una entrada de gancho diseñada que activa el recorrido de la ruta para ejecutar comandos arbitrarios como usuario de git
«Con la ejecución de código sin espacio aislado como usuario de git, teníamos control total sobre la instancia de GHES, incluido el acceso de lectura/escritura al sistema de archivos y la visibilidad de la configuración del servicio interno», dijo el investigador de seguridad de Wiz, Sagi Tzadik. dicho.
En cuanto a GitHub.com, un indicador de modo empresarial, que está configurado en «verdadero» para GitHub Enterprise Server, tiene por defecto «falso», lo que deja inactiva la ruta de los enlaces personalizados. Pero dado que este indicador también se pasa en el encabezado X-Stat, es igualmente inyectable usando el mismo mecanismo, lo que resulta en la ejecución de código también en GitHub.com.
Para empeorar las cosas, dada la arquitectura multiinquilino de GitHub y su infraestructura backend compartida, la compañía señaló que obtener la ejecución de código en GitHub.com permitía la exposición entre inquilinos, lo que permitía efectivamente a un atacante leer millones de repositorios en el nodo de almacenamiento compartido, independientemente de la organización o el usuario.
A la luz de la gravedad de CVE-2026-3854, se recomienda a los usuarios que apliquen la actualización inmediatamente para una protección óptima.
«Un solo comando git push fue suficiente para explotar una falla en el protocolo interno de GitHub y lograr la ejecución del código en la infraestructura backend», dijo Wiz. «Cuando varios servicios escritos en diferentes idiomas pasan datos a través de un protocolo interno compartido, las suposiciones que cada servicio hace sobre esos datos se convierten en una superficie de ataque crítica».
«Alentamos a los equipos que crean arquitecturas multiservicio a auditar cómo fluye la entrada controlada por el usuario a través de protocolos internos, especialmente cuando la configuración crítica para la seguridad se deriva de formatos de datos compartidos».