Faille du bac à sable brig : un lien symbolique dans le projet expose des dossiers de l'hôte
Un avis de septembre 2026 montre comment un agent de code isolé pouvait déposer un lien symbolique que l'outil suivait ensuite côté hôte. Corrigé dans brig 0.3.0.
De quoi s’agit-il ?
brig est un outil open source en Go qui exécute des agents de code IA dans un bac à sable, avec un mode microVM offrant une isolation matérielle, afin que l’agent ne voie que le projet qui lui est confié. Le 26 septembre 2026, les mainteneurs ont publié l’avis GHSA-wp6x-29qx-fpr7, et Endor Labs a décrit la découverte dans un article daté du 28 septembre 2026. La faille est une traversée par lien symbolique dans la manière dont brig monte le répertoire du projet. Cet article résume une recherche déjà publiée et corrigée ; il ne décrit pas de nouvelle attaque.
Comment ça fonctionne
brig validait le montage de l’espace de travail, mais transmettait le chemin du projet au runtime de conteneurs sans le résoudre. Le runtime le résolvait alors côté hôte, hors du bac à sable. L’agent disposant d’un accès en lecture-écriture au projet, il peut remplacer un sous-répertoire par un lien symbolique pointant vers un autre dossier de l’hôte. Rien ne se produit à ce stade. Le lien n’a d’effet que lorsque l’opérateur lance ensuite brig sur ce sous-répertoire : le runtime, côté hôte, suit le lien et monte la cible en lecture-écriture dans le bac à sable.
Les auteurs le classent comme un suivi de lien (CWE-59), brig jouant le rôle de « confused deputy ». Ils précisent qu’il ne s’agit pas d’une évasion de l’hyperviseur ni du noyau invité : les couches d’isolation ont tenu, mais la gestion des chemins a remis au bac à sable ce qu’il n’aurait jamais dû recevoir. Dans le résumé d’exécution, la ligne du projet affichait le chemin saisi par l’utilisateur et non le répertoire résolu ; la redirection était donc invisible pour l’opérateur.
Pourquoi c’est important
Les emplacements accessibles dépendent des privilèges de l’utilisateur qui lance brig et peuvent inclure clés SSH, identifiants cloud et autres projets. L’avis la classe en gravité élevée (CVSS 8,2) car le périmètre change : un bac à sable censé confiner l’agent atteint des données de l’hôte. Elle illustre aussi une tendance observée cet automne dans l’outillage des agents de code : la frontière d’isolation n’est aussi solide que le code qui la prépare, et les fichiers que l’agent peut écrire sont des entrées non fiables pour ce code.
Défenses
- Passez à brig 0.3.0. Le correctif ouvre le projet composant par composant, refuse les liens symboliques sous le premier répertoire modifiable par l’utilisateur, vérifie chaque entrée ouverte et affiche le répertoire résolu dans le résumé d’exécution.
- Si vous ne pouvez pas mettre à jour, résolvez le chemin complet du projet avant l’exécution (par exemple avec
pwd -P) et passez le vrai répertoire. - Vérifiez chaque composant du chemin, pas seulement le dernier ; un lien peut apparaître à n’importe quel niveau.
- Considérez tout répertoire accessible en écriture par le bac à sable comme influencé par un attaquant lorsqu’un outil privilégié le lit ensuite.
- Exécutez les lanceurs de bac à sable avec un utilisateur dédié à faibles privilèges, pour limiter l’exposition en cas de montage erroné.
- Gardez les identifiants hors des répertoires personnels vers lesquels un flux isolé pourrait être redirigé.
Status
| Élément | Détail |
|---|---|
| Produit | brig (github.com/brig-sh/brig) |
| Versions affectées | Antérieures à 0.3.0 |
| Corrigé dans | 0.3.0 |
| Avis publié | 26 septembre 2026 (GHSA-wp6x-29qx-fpr7) |
| Article de recherche | 28 septembre 2026 (Endor Labs) |
| Gravité | Élevée, score CVSS 3.1 de 8,2 |
| CVE | Aucun attribué au moment de l’avis |