Ce qui se passe
Pillar Security a trouvé une faille d'exécution de code dans OpenCode, l'agent de code open source de la société Anomaly (environ 3 millions de téléchargements npm par semaine, selon Pillar). Sur Windows et WSL, un serveur MCP distant pouvait lancer des commandes sur la machine du développeur, avec ses droits, pendant la connexion OAuth.
- Versions touchées : 1.0.137 à 1.18.32. Corrigé dans 1.18.33, publiée le 28 septembre 2026.
- Score proposé par Pillar : CVSS 3.1 9,8 (
AV:N/AC:L/PR:N/UI:N), CWE-78. - macOS et Linux ne sont pas concernés : le navigateur y est lancé sans passer par un shell.
- Le défaut se déclenche quand le développeur lance l'authentification
(
opencode mcp authou la requête équivalente). Avoir configuré le serveur ou ouvert une session ne suffit pas.
Le mécanisme
Le serveur choisit lui-même authorization_endpoint, la chaîne qui indique où
envoyer l'utilisateur se connecter. OpenCode la passait au paquet open (184
millions de téléchargements par semaine). Sous Windows, la version open@10.1.2,
épinglée par toutes les versions touchées, échappe le nom de l'application mais
pas la cible, puis confie le tout à powershell -EncodedCommand. PowerShell
développe $(...) dans une chaîne entre guillemets doubles : une adresse
https://…/$(commande) parfaitement valide exécute la commande, et l'échec du
lancement du navigateur qui suit est ignoré.
Le serveur n'a pas besoin d'être hostile à l'installation : la charge arrive dans une réponse HTTP au moment de la connexion. Un serveur compromis plus tard, un domaine racheté ou un nom typosquatté suffisent.
Pourquoi aucun scanner ne la voit
Anomaly a livré le correctif comme une refactorisation (PR #51414, fusionnée le 25 septembre), sans demander de CVE ni publier d'avis : un serveur MCP malveillant sort, selon l'éditeur, de son modèle de menace. Aucun outil d'analyse de dépendances ne la signalera. Le même défaut avait déjà donné CVE-2025-6514 (mcp-remote, juillet 2025, 9,6), CVE-2025-58062 et CVE-2025-10619.
Autre point : vérifier que l'adresse commence par http: ou https:, la parade
habituelle, n'arrête pas cette charge, qui est une adresse HTTPS ordinaire. Ce
qui ferme la faille est la mise à jour d'open vers 11.0.4, qui met la cible
entre apostrophes. Selon Pillar, Claude Code protège l'ouverture à deux niveaux
et gemini-cli passe par un execFile sans shell.
Comment s'y prendre
- Passer OpenCode en 1.18.33 ou plus et vérifier la version installée sur chaque poste Windows ou WSL : il n'y a pas d'alerte automatique.
- En attendant, retirer les serveurs MCP distants non vérifiés de la
configuration ;
opencode mcp listles énumère. - Si vous écrivez un client MCP ou un outil qui ouvre des liens : ne passez
jamais à
openune chaîne venue d'un tiers, lancez le navigateur par vecteur d'arguments, sans shell, et cherchezopen@10.xdans votre arbre de dépendances (pnpm why open). - Lier la découverte OAuth à l'origine configurée : un serveur qui désigne lui-même son point d'autorisation prend une décision de sécurité à votre place.
Source : The Hacker News, 22 octobre 2026, d'après le rapport de Pillar Security, qui date sa publication du 4 octobre (The Hacker News situe la divulgation au 19). Source en anglais.