Een fout in de AI-codeeragent OpenCode maakte het mogelijk dat een kwaadaardige of gekaapte MCP-server code uitvoerde op de Windows- of WSL-machine van een ontwikkelaar wanneer die ontwikkelaar inlogde. OpenCode maakt verbinding met MCP (Model Context Protocol)-servers om externe tools toe te voegen, en die code zou met de toegangsrechten van de ontwikkelaar zelf draaien.
Anomaly, het bedrijf achter OpenCode, heeft de fout verholpen in versie 1.18.33 op 28 september. Het vroeg geen CVE aan en publiceerde geen beveiligingsadvies, dus kwetsbaarheidsscanners zullen de nog kwetsbare builds niet markeren: 1.0.137 tot en met 1.18.32.
Tijdens die aanmelding levert de server zelf het webadres waarop de gebruiker wordt gestuurd, een OAuth “authorization endpoint”. Op Windows en WSL gaf OpenCode dat adres door aan een helper die het in een browser opent. De helper bouwde een PowerShell-opdracht rond het adres zonder het adres te escapen, waardoor een adres dat een PowerShell-commando bevatte dat commando zou uitvoeren.
De browserstap wordt alleen uitgevoerd wanneer een ontwikkelaar de aanmelding start, door op te roepen opencode mcp auth of een overeenkomstig verzoek te doen. Het hebben van de server geconfigureerd, of het openen van een sessie, activeert deze stap niet.
De aanvaller moet controle hebben over een externe MCP-server die de ontwikkelaar heeft toegevoegd, en die server hoeft niet vanaf het begin kwaadaardig te zijn. Een server die later wordt overgenomen, of een domein dat van eigenaar verandert, kan hetzelfde schadelijke adres gaan bevatten.
Pillar Security, dat de fout ontdekte en op 19 oktober openbaar maakte, beoordeelt de fout als kritisch, met een voorgestelde ernstscore van 9,8 uit 10.
De fout treft OpenCode op Windows en het Windows Subsystem for Linux (WSL). macOS en Linux worden niet getroffen, omdat OpenCode daar de browser opent zonder het adres via een shell door te geven.
OpenCode leverde de fix als een routinematige wijziging. De pull request die de wijziging bevatte wordt beschreven als een refactor van de code voor het starten van de browser, en noch die PR noch de release-opmerkingen noemen een beveiligingsfout.
Anomaly vroeg geen CVE aan en publiceerde geen advies. Het bedrijf zegt in zijn security policy dat MCP-servers die een gebruiker configureert “buiten onze vertrouwensgrens” vallen.
Pillar meldde de fout privé op 29 augustus en vroeg Anomaly later om het opnieuw te overwegen en een CVE aan te vragen. Volgens Pillar was Anomaly’s antwoord dat een kwaadaardige MCP-server buiten hun dreigingsmodel valt.
Aangezien er geen CVE is, zal de fout niet verschijnen in scanners of afhankelijkheidswaarschuwingen, dus het vinden van getroffen installaties vereist het rechtstreeks controleren van de OpenCode-versie. Anomaly heeft dit jaar wel advisories gepubliceerd voor andere code-executieproblemen in OpenCode, waaronder één die in augustus werd verholpen.
Eenzelfde soort fout kwam eerder al voor. In juli 2025 bevatte de mcp-remote proxy een vrijwel identieke bug, waarbij het authorisatie-eindpunt van een kwaadaardige server de opdrachtregel bereikte. Dat probleem kreeg CVE-2025-6514 toegewezen.
De browser-helper van OpenCode is een veelgebruikt pakket genaamd open. Het Windows-gedrag daarvan werd in 2023 gerapporteerd als een command-injection risico en verholpen in versie 11 van open, maar OpenCode bleef op een oudere release hangen.
De gebruikelijke verdediging tegen dit type probleem is controleren of het adres HTTP of HTTPS gebruikt. Dat helpt hier niet, omdat de aanval een gewoon HTTPS-adres gebruikt. OpenCode voegde die controle ook toe, maar het lek werd daadwerkelijk gedicht door bij te werken naar de gefixe versie van het hulpprogramma.
Wat te doen
Iedereen die OpenCode op Windows of WSL draait, moet upgraden en controleren met welke servers zij verbonden zijn.
- Werk bij naar OpenCode 1.18.33 of later.
- Als je nog niet kunt updaten, verwijder dan alle externe MCP-servers uit je OpenCode-configuratie die je niet hebt geverifieerd.
- Voer opencode mcp list uit om te zien welke servers zijn geconfigureerd.
Pillar meldde geen aanwijzingen dat de fout is misbruikt in aanvallen en publiceerde geen indicators om eerder misbruik te controleren. De fout staat los van een inbreuk op OpenCode’s gehoste Console die rond dezelfde tijd werd bekendgemaakt en mogelijk sommige opgeslagen API-sleutels voor OpenAI, Anthropic en Google heeft blootgesteld.
