Se han revelado múltiples vulnerabilidades de seguridad en GitHub Desktop así como en otros proyectos relacionados con Git que, si se explotan con éxito, podrían permitir a un atacante obtener acceso no autorizado a las credenciales de Git de un usuario.

«Git implementa un protocolo llamado Git Credential Protocol para recuperar las credenciales del asistente de credenciales «, dijo el investigador de seguridad de GMO Flatt, Ry0taK, quien descubrió las fallas, en un análisis publicado el domingo. «Debido al manejo inadecuado de los mensajes, muchos proyectos fueron vulnerables a la fuga de credenciales de varias maneras».

La lista de vulnerabilidades identificadas es la siguiente:

  • CVE-2025-23040 (puntuación CVSS: 6,6): las URL remotas creadas con fines malintencionados podrían provocar fugas de credenciales en GitHub Desktop
  • CVE-2024-50338 (puntuación CVSS: 7,4): el carácter de retorno de carro en la URL remota permite que el repositorio malicioso filtre credenciales en Git Credential Manager
  • CVE-2024-53263 (puntuación CVSS: 8,5): Git LFS permite la recuperación de credenciales a través de URL HTTP creadas
  • CVE-2024-53858 (puntuación CVSS: 6,5): la clonación recursiva de repositorios en la CLI de GitHub puede filtrar tokens de autenticación a hosts de submódulos que no sean de GitHub

Si bien el asistente de credenciales está diseñado para devolver un mensaje que contiene las credenciales separadas por el carácter de control de nueva línea («\n»), la investigación encontró que GitHub Desktop es susceptible a un caso de contrabando de retorno de carro («\r») mediante el cual inyectar el carácter en una URL creada puede filtrar las credenciales a un host controlado por un atacante.

«Al usar una URL creada con fines malintencionados, es posible provocar que Github Desktop malinterprete la solicitud de credenciales proveniente de Git, de modo que envíe credenciales para un host diferente al host con el que Git se está comunicando actualmente, lo que permite la exfiltración de secretos», dijo GitHub en un aviso.

También se ha identificado una debilidad similar en el paquete NuGet de Git Credential Manager, que permite exponer las credenciales a un host no relacionado. Asimismo, se ha descubierto que Git LFS no comprueba si hay caracteres de control incrustados, lo que da como resultado una inyección de retorno de carro (CRLF) a través de URL HTTP creadas.

Por otro lado, la vulnerabilidad que afecta a GitHub CLI aprovecha el hecho de que el token de acceso está configurado para enviarse a hosts distintos de github[.]com y ghe[.]com siempre que las variables de entorno GITHUB_ENTERPRISE_TOKEN, GH_ENTERPRISE_TOKEN y GITHUB_TOKEN estén configuradas, y CODESPACES esté configurado como «verdadero» en el caso de esta última.

«Si bien ambas variables relacionadas con la empresa no son comunes, la variable de entorno CODESPACES siempre se establece como verdadera cuando se ejecuta en GitHub Codespaces», dijo Ry0taK. «Por lo tanto, clonar un repositorio malicioso en GitHub Codespaces mediante GitHub CLI siempre filtrará el token de acceso a los hosts del atacante».

La explotación exitosa de las fallas mencionadas anteriormente podría llevar a que un tercero malintencionado utilice los tokens de autenticación filtrados para acceder a recursos privilegiados.

En respuesta a las revelaciones, el proyecto Git ha tratado la fuga de credenciales derivada del contrabando de retornos de carro como una vulnerabilidad independiente ( CVE-2024-52006 , puntuación CVSS: 2,1) y la ha solucionado en la versión v2.48.1 .

«Esta vulnerabilidad está relacionada con CVE-2020-5260, pero se basa en un comportamiento en el que los caracteres de retorno de carro únicos son interpretados por algunas implementaciones de asistentes de credenciales como nuevas líneas», dijo el ingeniero de software de GitHub Taylor Blau en una publicación sobre CVE-2024-52006.

La última versión también parchea CVE-2024-50349 (puntuación CVSS: 2,1), que podría ser explotada por un adversario para crear URL que contengan secuencias de escape para engañar a los usuarios para que proporcionen sus credenciales a sitios arbitrarios.

Se recomienda a los usuarios que actualicen a la última versión para protegerse contra estas vulnerabilidades. Si no es posible aplicar parches de inmediato, el riesgo asociado con las fallas se puede mitigar evitando ejecutar git clone con –recurse-submodules contra repositorios que no sean de confianza. También se recomienda no usar el asistente de credenciales clonando únicamente repositorios disponibles públicamente.

Fuente y redacción: thehackernews.com

Compartir