OpenCode : un serveur MCP malveillant pouvait exécuter du code sous Windows lors de la connexion OAuth
Pillar Security (divulgation du 19 oct. 2026) : un serveur MCP distant pouvait injecter des commandes PowerShell via l'URL d'autorisation OAuth d'OpenCode sous Windows/WSL. Corrigé en 1.18.33.
De quoi s’agit-il ?
Le 19 octobre 2026, Pillar Security (recherche d’Eilon Cohen) a décrit publiquement une faille critique d’OpenCode, l’agent de codage IA open source d’Anomaly. Sous Windows et WSL, un serveur MCP distant malveillant ou détourné pouvait exécuter des commandes avec les droits du développeur lorsque celui-ci s’authentifiait auprès de ce serveur via OAuth. Pillar la note CVSS 9,8. Signalée en privé fin août 2026, elle a été corrigée en version 1.18.33 le 28 septembre 2026. Les versions concernées vont de 1.0.137 à 1.18.32. Elle a été relayée le 20 octobre (Infosecurity Magazine) et le 22 octobre 2026 (The Hacker News).
Comment ça fonctionne
Pendant l’authentification OAuth d’un serveur MCP, c’est le serveur qui fournit l’URL du « point d’autorisation » que l’agent ouvre dans le navigateur. Sous Windows, OpenCode transmettait cette URL à un paquet utilitaire qui construisait une commande PowerShell sans échappement correct : certaines parties d’une URL forgée pouvaient donc être interprétées comme des commandes. La charge peut se cacher dans une URL HTTPS d’apparence normale ; une simple vérification du schéma http/https ne suffit donc pas. L’étape ne s’exécute qu’au démarrage de la connexion (par exemple opencode mcp auth) ; configurer un serveur ou ouvrir une session ne la déclenche pas. L’attaquant doit contrôler un serveur MCP distant ajouté par le développeur, par exemple après une prise de contrôle ou un changement de propriétaire de domaine. macOS et Linux ne sont pas concernés. Aucune exploitation active n’a été signalée.
Pourquoi c’est important
Les agents de codage s’exécutent avec les identifiants, les dépôts et le shell du développeur : l’exécution de code équivaut à la compromission du poste. Pillar relève aussi que l’éditeur considère les serveurs MCP configurés par l’utilisateur comme hors de sa frontière de confiance et n’a publié ni CVE ni avis ; les scanners de dépendances peuvent donc ne pas signaler les installations vulnérables. Le correctif figurait dans une modification présentée comme une refonte du lancement du navigateur, facile à manquer dans les notes de version.
Défenses
- Passez à OpenCode 1.18.33 ou plus récent et vérifiez que la correction d’échappement de la dépendance sous-jacente est incluse.
- Examinez les serveurs distants configurés avec
opencode mcp listet retirez ceux dont vous ne pouvez pas répondre. - Considérez toute URL fournie par un serveur distant comme non fiable : ne l’interpolez jamais dans une chaîne shell ; lancez le navigateur par exécution de processus avec arguments séparés.
- Ne vous reposez pas uniquement sur une liste blanche de schémas pour valider les URL.
- Inventoriez vos outils d’agent par version, même en l’absence de CVE.
Statut
| Aspect | Détail |
|---|---|
| Chercheur | Pillar Security |
| Signalé / corrigé / public | Fin août 2026 / 28 sept. 2026 (1.18.33) / 19 oct. 2026 |
| Concerné | OpenCode 1.0.137 – 1.18.32, Windows et WSL |
| Identifiant | Aucun CVE ni avis publié |