GitHub resuelve la vulnerabilidad que permite al atacante tomar el control del repositorio e infectar todas las aplicaciones

GitHub ha abordado una vulnerabilidad que permite a los atacantes tomar el control de uno de sus repositorios e infectar todas las aplicaciones y otros códigos que dependen de él.

Los investigadores de la empresa de seguridad Checkmarx se acercaron a la plataforma el 13 de junio y GitHub reconocieron la vulnerabilidad, la clasificó como de gravedad “alta” y les pagó una recompensa por vulnerabilidades no reveladas. GitHub no respondió a las solicitudes de comentarios, pero Checkmarx dijo que trabajaron con la plataforma para solucionar el vulnerabilidad.

El vulnerabilidad se centra en la función ” Retiro del espacio de nombres del repositorio popular ” de GitHub. Miles de usuarios de GitHub, incluidos los que controlan repositorios y paquetes populares, optan por cambiar sus nombres de usuario, dejando espacios de nombres que incluyen sus nombres de usuario anteriores abiertos a la explotación.

La vulnerabilidad, según Checkmarx, dejó numerosos paquetes susceptibles de ser secuestrados para servir código malicioso a millones de usuarios y muchas aplicaciones.

Aviad Gershon, investigador de seguridad de Checkmarx, le dijo que los intentos de explotar la función de retiro del espacio de nombres siguen siendo puntos de ataque atractivos para los hackers de la cadena de suministro .

“Esta vulnerabilidad golpea uno de los eslabones de la cadena de suministro. Una vez que esta cadena se vea comprometida, podemos esperar incidentes tan grandes como el incidente de SolarWinds y más grandes”, dijo Gershon. 

“Esto posiblemente puede conducir a la infección de millones de usuarios finales con código malicioso que va desde ladrones de información hasta criptomineros y prácticamente cualquier otra cosa que el atacante decida emplear. Una posibilidad aún más preocupante es el código malicioso dentro de los equipos de salud o energía, por ejemplo”.

Gershon explicó que su investigación sobre la vulnerabilidad comenzó cuando su arquitecto jefe, Elad Rapoport, encontró el primer desvío relacionado con esta vulnerabilidad a fines del año pasado. La vulnerabilidad se solucionó en mayo de 2022, pero no antes de que se abusara de él . Rapoport comenzó a buscar formas similares de eludir esta misma protección.

Varios administradores de paquetes extraen el código de sus paquetes directamente de GitHub, según Gershon, quien agregó que si un atacante pudiera tomar el control de un repositorio popular que contiene el código de un paquete popular, podría agregarle su propio código. 

“No es raro que un paquete de código abierto se convierta en uno de los componentes básicos de una aplicación ampliamente utilizada, que en este escenario también será envenenada”, dijo Gershon a The Record. 

Citó una vulnerabilidad “similar” utilizada para secuestrar e infectar dos paquetes PHP populares en mayo, uno de los cuales se había descargado más de 2,5 millones de veces en el momento de la infracción.

“En este caso, el atacante (que luego afirmó que es un investigador de seguridad) intentó robar información confidencial de las víctimas. Entonces, este es un escenario totalmente realista y un riesgo del mundo real”, dijo Gershon.

En su informe sobre la vulnerabilidad, los investigadores de Checkmarx dijeron que los actores de amenazas podrían explotarla utilizando la técnica “Repojacking”, donde un atacante secuestra un espacio de nombres legítimo, a menudo popular, en GitHub.

El espacio de nombres típico en GitHub es la combinación del nombre de usuario y el nombre del repositorio. Un ejemplo sería: ejemplo-usuario/ejemplo-repositorio. 

“Un espacio de nombres es vulnerable al Repojacking en caso de que el nombre original del usuario se haya cambiado utilizando la función de ‘cambio de nombre de usuario’ que ofrece GitHub”, explicaron los investigadores. “El proceso de cambio de nombre de usuario es rápido y sencillo. Una advertencia le informa que todo el tráfico de la URL del repositorio anterior se redirigirá a la nueva”.

Una vez que cambie su nombre de usuario, su antiguo nombre de usuario estará disponible para que cualquiera lo reclame. Un atacante puede abrir un repositorio con el mismo nombre y secuestrar el espacio de nombres.

Para abordar la vulnerabilidad, GitHub creó una función en la que cualquier repositorio que cumpla con ciertos criterios se considera “retirado” y no puede ser utilizado por otros.

Checkmarx dijo que todos los nombres de usuario renombrados en GitHub eran vulnerables a esta vulnerabilidad, incluidos más de 10,000 paquetes en los administradores de paquetes Go, Swift y Packagist. 

Si bien la vulnerabilidad se solucionó, Checkmarx recomendó que los usuarios de GitHub eviten usar espacios de nombres retirados para minimizar la superficie de ataque porque “aún pueden existir otras vulnerabilidades en este mecanismo”.

A pesar de su trabajo con la empresa sobre el tema, su informe sobre la vulnerabilidad decía que la protección proporcionada por la plataforma para abordar la vulnerabilidad “se activa en función de métricas internas y no da a los usuarios ninguna indicación de si un espacio de nombres en particular está protegido o no. ” 

Esto puede dejar en riesgo a algunos repositorios y paquetes sin saberlo, según los investigadores. 

Varios expertos en seguridad cibernética confirmaron los hallazgos de Checkmarx y dijeron que la vulnerabilidad era significativa porque miles de herramientas se basan en bibliotecas de código abierto y repositorios de código, lo que hace que los ataques sean potencialmente catastróficos.