Microsoft corrige une faille d’AutoGen Studio permettant l’exécution de code

Microsoft corrige une faille d'AutoGen Studio permettant l'exécution de code

Une chaîne de vulnérabilités surnommée AutoJack a été identifiée dans l’interface AutoGen Studio de Microsoft, un outil qui sert à prototyper des agents d’intelligence artificielle. Ces failles permettaient à des attaquants de manipuler un agent pour qu’il exécute des commandes arbitraires sur son système hôte, simplement en visitant une page web malveillante.

AutoGen Studio est la composante graphique d’AutoGen, le framework open-source de Microsoft pour construire des systèmes d’IA multi-agents. Ce framework aide les développeurs à concevoir des agents d’IA qui peuvent collaborer entre eux, utiliser des outils, naviguer sur le web, exécuter du code, interagir avec des API et se connecter à des systèmes externes.

Le projet est très populaire, avec plus de 59 000 étoiles et près de 9 000 forks sur GitHub. Microsoft précise que l’impact d’AutoJack a été limité car le problème a été résolu durant la phase de développement. L’entreprise a déclaré que ce défaut a été identifié et corrigé avant toute publication sur PyPI, ce qui veut dire que le code vulnérable n’a jamais été inclus dans un paquet officiel.

Les détails de l’attaque AutoJack

Microsoft décrit l’attaque AutoJack comme reposant sur trois faiblesses distinctes dans AutoGen Studio :

  1. Le WebSocket MCP faisait confiance aux connexions provenant de localhost. Cela permettait de tromper un agent de navigation qui fonctionnait sur la même machine, pour qu’il charge un JavaScript contrôlé par l’attaquant et qui semblait provenir d’une source locale de confiance.
  2. Le middleware d’authentification d’AutoGen Studio excluait les routes /api/mcp/* des contrôles d’authentification. Parallèlement, le point de terminaison WebSocket MCP ne mettait pas en œuvre sa propre authentification, ce qui le rendait accessible sans identifiants.
  3. Le WebSocket MCP acceptait une valeur server_params encodée en base64 depuis l’URL et la transmettait au code de lancement de processus. Cette faille permettait aux attaquants de spécifier et d’exécuter des commandes PowerShell, Bash ou des exécutables arbitraires.
Contournement de l'origine via l'agent d'intelligence artificielle
Contournement de l’origine via l’agent d’IA
Source : Microsoft

Dans un scénario d’attaque réaliste présenté par Microsoft, un JavaScript malveillant s’exécute sur une page web que visite l’agent d’IA d’un développeur. Cet agent ouvre ensuite une connexion WebSocket vers le point de terminaison MCP local d’AutoGen Studio.

La charge utile force alors AutoGen Studio à lancer une commande choisie par l’attaquant, avec les privilèges du compte du développeur. Pour illustrer l’effet, Microsoft a montré le lancement de la calculatrice Windows.

Démonstration d'AutoJack lançant Calc.exe
Démonstration d’AutoJack lançant Calc.exe
Source : Microsoft

Il faut noter que les utilisateurs qui ont installé AutoGen Studio depuis l’index de paquets Python PyPI n’ont jamais été exposés au code vulnérable. Le dernier paquet en date, autogenstudio 0.4.2.2, ne contient pas les faiblesses d’AutoJack.

Cependant, les développeurs qui ont compilé AutoGen directement depuis GitHub durant une fenêtre limitée, avant le commit b047730, ont été affectés pendant une courte période.

Microsoft recommande aux utilisateurs d’AutoGen Studio de le déployer strictement comme un prototype de développement dans un environnement isolé, qui n’est pas exposé à internet. Le mainteneur du projet souligne qu’il ne faut pas l’exécuter avec un agent capable de naviguer ou d’exécuter du code arbitraire sur une machine qui contient du contenu non fiable.

L’entreprise conseille aussi de lancer AutoGen Studio sous un compte à faibles privilèges, dans un profil utilisateur isolé ou un conteneur. Cette pratique permet de limiter les conséquences d’une éventuelle exécution de code à distance pilotée par un agent, en la confinant à un profil de développement et non au compte principal de l’utilisateur.