Les chercheurs ont réussi à tromper l’assistant de codage alimenté par GitLab pour afficher le contenu malveillant aux utilisateurs et divulguer le code source privé en injectant des invites cachées dans les commentaires de code, commettre des messages et fusionner des descriptions de demandes.
Le duo adjoint de codage de Gitlab peut analyser les invites à l’IA malveillante cachées dans les commentaires, le code source, les descriptions de demande de fusion et commettre des messages de référentiels publics, ont trouvé des chercheurs. Cette technique leur a permis de tromper le chatbot pour faire des suggestions de code malveillant aux utilisateurs, partager des liens malveillants et injecter du code HTML Rogue dans des réponses qui ont furtivement divulgué le code à partir de projets privés.
« Gitlab a corrigé l’injection HTML, ce qui est génial, mais la plus grande leçon est claire: les outils d’IA font partie de la surface d’attaque de votre application maintenant », a déclaré les chercheurs de la société de sécurité des applications Legit Security dans un rapport. « S’ils lisent à partir de la page, cette entrée doit être traitée comme toutes les autres données fournies par l’utilisateur – non fiables, désordonnées et potentiellement dangereuses. »
L’injection rapide est une technique d’attaque contre les modèles de grands langues (LLM) pour manipuler leur sortie aux utilisateurs. Et bien que ce ne soit pas une nouvelle attaque, elle sera de plus en plus pertinente car les entreprises développent des agents d’IA qui analysent les données générées par les utilisateurs et prennent indépendamment des mesures en fonction de ce contenu.
Compagnon de développeur s’est retourné contre le développeur
Gitlab Duo est un compagnon de cycle de vie de développement alimenté en AI pour la populaire plate-forme Gitlab DevOps. L’outil peut faire des suggestions de code, résoudre les problèmes de code, expliquer les vulnérabilités dans le code et suggérer des remèdes via une interface chatbot. Dans le cadre de son fonctionnement normal, Gitlab Duo analysera le contenu d’un projet GitLab, y compris le code source, mais aussi les commentaires, les descriptions, les problèmes ouverts, la fusion des demandes (contributions du code) et plus encore.
Des chercheurs de Legit Security ont eu l’idée de tester s’ils pouvaient inclure des instructions dans divers domaines d’un projet qui pourraient être contrôlés par des utilisateurs externes et que Gitlab Duo interpréterait comme des invites de système lors de l’analyse de ce contenu. Et cela a fonctionné.
« Duo analyse l’ensemble du contexte de la page, y compris les commentaires, les descriptions et le code source – le rendant vulnérable aux instructions injectées cachées n’importe où dans ce contexte », ont écrit les chercheurs.
Avant de tester ce qui pourrait être réalisé avec de telles invites, les chercheurs ont cherché des moyens de rendre leurs invites injectées invisibles ou difficiles à repérer et identifier plusieurs méthodes possibles, y compris la contrebande Unicode, les charges utiles codées de base16, et l’utilisation du moteur de rendu de formule mathématique de Katex pour injecter des invites en tant que texte blanc qui devient invisible sur le fond blanc.
En termes de ce qui pourrait être réalisé, les chercheurs ont réussi à tromper Duo pour injecter un package JavaScript malveillant dans les modifications de code qu’elle a suggérées à l’utilisateur lors de la révision d’une demande de fusion avec une invite cachée dans sa description.
Une autre attaque de preuve de concept impliquait une invite qui a forcé duo à injecter un lien Web dans ses réponses, avec le lien menant à une fausse page de connexion contrôlée par les chercheurs. En outre, comme Duo aide les propriétaires de projets à examiner les soumissions de code tiers – les demandes de fusion – des invites cachées pourraient inciter l’assistant AI à soutenir une fusion malveillante sans critique et à tromper le réviseur qu’il s’agit d’une soumission légitime.
L’injection rapide de l’IA entraîne une injection de HTML
Duo envoie des réponses aux utilisateurs dans une interface basée sur le chatbot HTML qui utilise le langage Markdown pour formater le texte. Les chercheurs ont observé que ses réponses avaient été rendues progressivement lorsqu’ils se sont diffusées à partir du backend LLM et qui leur donnaient l’idée que s’ils réussissaient à injecter des balises HTML dans une invite, ils seraient rendus et interprétés par le navigateur.
« À ce stade, nous avons réalisé que nous pouvions déjà fabriquer des URL de Markdown et les faire afficher à l’utilisateur », ont déclaré les chercheurs. « Donc, nous avons demandé: Et si l’étiquette de l’URL elle-même contenait du HTML brut? Si Duo apporte des réponses en temps réel, le navigateur peut interpréter ce HTML avant que toute désinfection appropriée entre en jeu. »
Le test a fonctionné avec une invite qui a demandé à l’assistant AI d’insérer une URL qui a ensuite ouvert une balise HTML
Cette nouvelle capacité à exécuter un HTML arbitraire dans le navigateur de l’utilisateur a donné aux chercheurs une autre idée. Étant donné que la plupart des utilisateurs de GitLab ont également accès à des projets privés, si l’attaquant peut découvrir l’URL d’un tel projet privé, ils peuvent se reproduire sur les autorisations de l’utilisateur pour lire le code à partir de celui-ci, le coder et le renvoyer à un serveur sous leur contrôle, en d’autres termes, la fuite de code source sensible et privé. Cela devient encore plus critique s’ils peuvent déterminer l’emplacement d’un fichier contenant des secrets dans le référentiel, tels que les jetons API ou d’autres informations d’identification.
« Cette faille de sécurité montre à quel point les assistants d’IA puissants et risqués comme Gitlab Duo peuvent être lorsqu’ils font aveuglément confiance en le contenu de la page », ont écrit les chercheurs. « En se faufilant dans des invites cachées et des HTML bruts, nous avons pu faire duo un code source privé Duo sans que l’utilisateur clique sur une seule chose. »
Gitlab a corrigé l’injection HTML en empêchant Duo de rendre des étiquettes risquées comme



