La vulnérabilité de GitHub Desktop entraîne des fuites d’informations d’identification via des URL distantes malveillantes
Plusieurs vulnérabilités de sécurité ont été divulguées dans GitHub Desktop ainsi que dans d’autres projets liés à Git qui, si elles étaient exploitées avec succès, pourraient permettre à un attaquant d’obtenir un accès non autorisé aux informations d’identification Git d’un utilisateur.
« Git implémente un protocole appelé Git Credential Protocol pour récupérer les informations d’identification à partir de l’ assistant d’identification », a déclaré Ry0taK, chercheur en sécurité chez GMO Flatt, qui a découvert les failles, dans une analyse publiée dimanche. « En raison d’une mauvaise gestion des messages, de nombreux projets étaient vulnérables aux fuites d’informations d’identification de diverses manières. »
La liste des vulnérabilités identifiées est la suivante :
- CVE-2025-23040 (score CVSS : 6,6) – Des URL distantes conçues de manière malveillante peuvent entraîner des fuites d’informations d’identification dans GitHub Desktop
- CVE-2024-50338 (score CVSS : 7,4) – Le caractère de retour chariot dans l’URL distante permet au référentiel malveillant de divulguer des informations d’identification dans Git Credential Manager
- CVE-2024-53263 (score CVSS : 8,5) – Git LFS permet la récupération d’informations d’identification via des URL HTTP conçues
- CVE-2024-53858 (score CVSS : 6,5) – Le clonage récursif du référentiel dans GitHub CLI peut divulguer des jetons d’authentification à des hôtes de sous-modules non GitHub
Bien que l’assistant d’informations d’identification soit conçu pour renvoyer un message contenant les informations d’identification séparées par le caractère de contrôle de nouvelle ligne (« \n »), la recherche a révélé que GitHub Desktop est sensible à un cas de contrebande de retour chariot (« \r ») par lequel l’injection du caractère dans une URL conçue peut divulguer les informations d’identification à un hôte contrôlé par un attaquant.
« En utilisant une URL conçue de manière malveillante, il est possible que la demande d’informations d’identification provenant de Git soit mal interprétée par Github Desktop de telle sorte qu’elle enverra des informations d’identification pour un hôte différent de celui avec lequel Git communique actuellement, permettant ainsi l’exfiltration de secrets », a déclaré GitHub dans un avis.
Une faiblesse similaire a également été identifiée dans le package NuGet Git Credential Manager, permettant aux informations d’identification d’être exposées à un hôte non lié. De même, il a été constaté que Git LFS ne vérifie pas les caractères de contrôle intégrés, ce qui entraîne une injection de retour chariot (CRLF) via des URL HTTP conçues à cet effet.
D’autre part, la vulnérabilité affectant GitHub CLI tire parti du fait que le jeton d’accès est configuré pour être envoyé à des hôtes autres que github[.]com et ghe[.]com tant que les variables d’environnement GITHUB_ENTERPRISE_TOKEN, GH_ENTERPRISE_TOKEN et GITHUB_TOKEN sont définies, et CODESPACES est défini sur « true » dans le cas de ce dernier.
« Bien que les deux variables liées à l’entreprise ne soient pas courantes, la variable d’environnement CODESPACES est toujours définie sur true lors de l’exécution sur GitHub Codespaces », a déclaré Ry0taK. « Ainsi, le clonage d’un référentiel malveillant sur GitHub Codespaces à l’aide de GitHub CLI entraînera toujours une fuite du jeton d’accès vers les hôtes de l’attaquant. »
L’exploitation réussie des failles susmentionnées pourrait conduire un tiers malveillant à utiliser les jetons d’authentification divulgués pour accéder à des ressources privilégiées.
En réponse aux révélations, la fuite d’informations d’identification résultant de la contrebande de retour chariot a été traitée par le projet Git comme une vulnérabilité autonome ( CVE-2024-52006 , score CVSS : 2,1) et traitée dans la version v2.48.1 .
« Cette vulnérabilité est liée à CVE-2020-5260, mais repose sur un comportement où les caractères de retour chariot simples sont interprétés par certaines implémentations d’aide aux informations d’identification comme des nouvelles lignes », a déclaré Taylor Blau, ingénieur logiciel chez GitHub, dans un article sur CVE-2024-52006.
La dernière version corrige également la faille CVE-2024-50349 (score CVSS : 2,1), qui pourrait être exploitée par un adversaire pour créer des URL contenant des séquences d’échappement afin d’inciter les utilisateurs à fournir leurs informations d’identification à des sites arbitraires.
Il est conseillé aux utilisateurs de mettre à jour vers la dernière version pour se protéger contre ces vulnérabilités. Si une mise à jour immédiate n’est pas une option, le risque associé aux failles peut être atténué en évitant d’exécuter git clone avec –recurse-submodules sur des référentiels non fiables. Il est également recommandé de ne pas utiliser l’assistant d’identification en clonant uniquement des référentiels accessibles au public.