
Los investigadores de ciberseguridad han detallado una vulnerabilidad de seguridad crítica que afecta a GitHub.com y GitHub Enterprise Server. Esta vulnerabilidad podría permitir que un usuario autenticado ejecute código remoto con un único comando «git push».
Esta falla, rastreada como CVE-2026-3854 (puntuación CVSS: 8,7), es un caso de inyección de comando que podría permitir a un atacante con acceso push al repositorio ejecutar código remoto en una instancia.
«Durante una operación de git push, los valores de las opciones de inserción especificados por el usuario no se desinfectaron adecuadamente antes de incluirlos en los encabezados de servicios internos», según el aviso de GitHub sobre la vulnerabilidad. «El formato de encabezado interno usaba delimitadores que también podían aparecer en la entrada del usuario, lo que permitía a un atacante inyectar campos de metadatos adicionales a través de un valor de opción de inserción diseñado».
Según se informa, Wiz, la empresa de seguridad en la nube propiedad de Google, descubrió e informó el problema el 4 de marzo de 2026, y GitHub verificó e implementó una solución en GitHub.com en dos horas.
Esta vulnerabilidad también se aborda en las versiones 3.14.25, 3.15.20, 3.16.16, 3.17.13, 3.18.8, 3.19.4, 3.20.0 y posteriores de GitHub Enterprise Server. No hay pruebas de que este problema se haya aprovechado en situaciones maliciosas.
Según GitHub, este 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.
El núcleo del problema surge del hecho de que las opciones de git push especificadas por el usuario no se desinfectan adecuadamente antes de que sus valores se incorporen a los encabezados internos de X-Stat. Debido a que el formato de metadatos internos se basa en puntos y coma como delimitadores que también pueden aparecer en la entrada del usuario, un atacante malintencionado podría aprovechar este descuido para inyectar y provocar la ejecución de comandos arbitrarios.

«Los investigadores han demostrado que al encadenar múltiples valores inyectados, pueden anular el entorno en el que se procesó el envío, evitar las protecciones de la zona de pruebas que normalmente restringirían la ejecución del enlace y, en última instancia, ejecutar comandos arbitrarios en el servidor», dijo Alexis Wales, director de seguridad de la información de GitHub.
Wiz señaló en un anuncio conjunto que el problema es «muy fácil» de explotar, y agregó que podría conducir a la ejecución remota de código en nodos de almacenamiento compartido. En el momento de esta publicación, aproximadamente el 88 % de los casos son vulnerables a este problema. Una cadena de ejecución remota de código conecta las tres inyecciones.
Inyectar valores rails_env que no son de producción para omitir el entorno sandbox Inyectar custom_hooks_dir para controlar la redirección del directorio de enlaces Inyectar una entrada de enlace diseñada en repo_pre_receive_hooks que activa el recorrido de ruta y ejecuta comandos arbitrarios como usuario de git
«Al ejecutar 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 las configuraciones de servicios internos», dijo el investigador de seguridad de Wiz, Sagi Tzadik.
Para GitHub.com, el indicador del modo empresarial (establecido en ‘verdadero’ en GitHub Enterprise Server) tiene como valor predeterminado ‘falso’, lo que inactiva las rutas de enlace personalizadas. Sin embargo, este indicador también se pasa en el encabezado X-Stat, por lo que también se puede inyectar utilizando el mismo mecanismo, lo que da como resultado la ejecución del código en GitHub.com.
Para empeorar las cosas, la compañía señaló que dada la arquitectura multiinquilino de GitHub y su infraestructura backend compartida, obtener la ejecución de código en GitHub.com permite la exposición entre inquilinos, lo que permite efectivamente a un atacante leer millones de repositorios en nodos de almacenamiento compartido, independientemente de la organización o el usuario.
Dada la gravedad de CVE-2026-3854, recomendamos que los usuarios apliquen la actualización inmediatamente para una protección óptima.
«Un solo comando git push fue suficiente para explotar una falla en los protocolos internos de GitHub y ejecutar 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 clave».
«Alentamos a los equipos que crean arquitecturas multiservicio a auditar cómo las entradas controladas por el usuario fluyen a través de protocolos internos, especialmente cuando las configuraciones críticas para la seguridad se derivan de formatos de datos compartidos».
Source link
