L'échec critique de Claude Code: lors de l'ouverture d'un numéro vous donne le contrôle total de vos dépôts dans GitHub Actions

Auteur: Publié 5 min de lectura 172 lecture

Les images de cet article ont été générées par intelligence artificielle. Notre méthode de publication

Un chercheur en sécurité, RyotaK de GMO Flatt Security, a découvert une vulnérabilité critique dans l'Action Anthropique GitHub appelée Claude Code qui a permis à un attaquant de prendre le contrôle de dépôts publics vulnérables avec rien de plus que d'ouvrir un problème: l'action pourrait compter sur des «bots» sans valider son origine et, combiné avec des techniques d'injection rapide, conduire à l'exfiltration des pouvoirs et à la prise du flux de CI / CD.

En termes techniques, l'action est conçue pour être intégrée dans les pipelines CI / CD et a par défaut des permissions étendues sur le code, les problèmes, les demandes de tirage et les fichiers de flux de travail. Pour atténuer ce risque, l'action devrait limiter qui pourrait tirer, idéalement seulement les utilisateurs avec des permis d'écriture. La décision était dans un chèque qui permettait à tout acteur dont le nom se terminait par [bot] sous la fausse hypothèse que les applications GitHub sont intrinsèquement fiables. Cependant, n'importe qui peut créer et installer une application GitHub dans son propre dépôt et utiliser leur jeton pour interagir avec d'autres dépôts publics; l'action a interprété cette interaction comme "bot de confiance" et a accepté le contenu malveillant.

L'échec critique de Claude Code: lors de l'ouverture d'un numéro vous donne le contrôle total de vos dépôts dans GitHub Actions
Image générée avec IA.

Une fois que l'action accepte le contenu adverse, l'attaquant peut utiliser injection rapide, c'est-à-dire insérer des instructions dans le texte que le modèle (Claude) interprète dans le cadre de sa tâche. RyotaK a démontré comment amener Claude à lire et écrire d'une manière qui filtrerait les variables d'environnement de / proc / self / environ - où elles peuvent résider secrets - et que ces variables comprendraient la chaîne nécessaire pour obtenir un jeton d'installation de l'application GitHub avec les permissions d'écriture. Ce jeton peut être échangé pour l'accès à l'action et donc permettre l'injection de code malveillant dans l'action elle-même qui se propage ensuite aux projets qui la consomment.

Anthropic a reçu le rapport en janvier, a évalué la série d'échecs avec un V4.0 CVSS 7,8, corrigé le contournement central en quatre jours et publié un durcissement supplémentaire pendant le printemps; les corrections sont incluses à partir claude-code-action v1.0.94. L'anthropique a également payé une récompense pour la découverte. Malgré cela, RyotaK a confirmé environ 50 vecteurs différents pour éviter le système de permis, ce qui souligne que le problème est à la fois technique et de conception: les agents avec des outils et des références peuvent être poussés autant que leurs autorisations le permettent.

Les conséquences sont considérables. De nombreuses organisations reproduisent des exemples de workflows tels que et héritent de mauvaises configurations, telles que l'option autorisée _ non _ écrire _ utilisateurs: "*", qui permet à tout utilisateur de déclencher l'action. En outre, la pratique consistant à publier des résumés ou des résultats d'analyse d'impact sur des panels publics d'exécutions de flux de travail crée des canaux d'évasion supplémentaires. Il existe déjà de véritables précédents : en février, une injection rapide dans un flux de triage a permis de voler un jeton de publication de npm et de télécharger un paquet non autorisé, un exemple clair de la façon dont une chaîne de confiance brisée peut convertir un assistant de développement en vecteurs de chaîne d'approvisionnement.

Si vous administrez des dépôts en utilisant Claude Code ou d'autres actions de l'IV, la première et la plus urgente recommandation est mise à jour de claude-code-action v1.0.94 ou plus. Ensuite, vérifiez et resserrez vos workflows : limitez qui peut les tirer, n'acceptez pas les déclencheurs d'acteurs non fiables ou génériques avec [bot] sans vérification supplémentaire, et évitez la configuration qui permet aux utilisateurs sans écrire permet d'activer des actions critiques. Il limite les permis de GITHUB _ TOKEN et tout outil à ce qui est strictement nécessaire et évite d'exposer des résumés ou des sorties d'agents sur des panneaux publics ou des artefacts qui peuvent être lus par des attaquants.

L'échec critique de Claude Code: lors de l'ouverture d'un numéro vous donne le contrôle total de vos dépôts dans GitHub Actions
Image générée avec IA.

Il est également essentiel de penser à la conception : ne nourrissez pas un agent avec des entrées peu fiables lorsque vous avez accès à des secrets ou des permis d'écriture. Si vous devez traiter des contributions publiques, mettre en place une étape d'assainissement et d'approbation manuelle avant qu'un agent ait accès à des jetons sensibles; utiliser des contrôles d'approbation pour les flux de travail externes des contribuables et restreindre l'utilisation d'outils qui peuvent être écrits dans le dépôt ou les paquets publiés. Il applique la philosophie de moins de privilège et le principe de séparation des fonctions entre l'examen automatique et les actions qui modifient les artefacts ou les secrets.

Pour ceux qui veulent approfondir la façon de durcir les actions de GitHub et d'atténuer ces vecteurs, la documentation officielle de GitHub sur la sécurité des actions est une ressource fondamentale et utile: https: / / docs.github.com / fr / actions / learn-github-actions / security-hardening-for-github-actions. Il est également recommandé d'examiner directement le dépôt anthropique et ses versions pour vérifier la mise à jour : https: / / github.com / anthropique / claude-code-action.

L'affaire Claude Code n'est pas une curiosité isolée, mais une autre preuve que Les défenses rapides d'injection et la conception de permis IC / CD restent immatures. Les équipes chargées de la sécurité et du développement devraient traiter les mesures d'IA comme des composantes de la chaîne d'approvisionnement : les déployer avec prudence, vérifier leurs permis, exiger des examens humains pour des intrants peu fiables et appliquer une surveillance pour détecter les comportements anormaux. Entre-temps, les fournisseurs d'agents doivent supposer que les données potentiellement malveillantes arriveront à leurs modèles et conçoivent des obstacles techniques, politiques et d'utilisation qui minimisent les dommages si ces obstacles sont violés.

Couverture

Autres

Plus de nouvelles sur le même sujet.