Una vulnerabilità di OpenCode consentiva all’accesso MCP di attivare code execution su Windows
La vulnerabilità di OpenCode consentiva a un server Model Context Protocol (MCP) malevolo o compromesso, ossia un servizio esterno che fornisce strumenti a un agente AI per la programmazione, di eseguire codice quando uno sviluppatore iniziava la procedura di accesso su Windows o Windows Subsystem for Linux (WSL). I comandi risultanti venivano eseguiti con i privilegi dello sviluppatore, rendendo la vulnerabilità particolarmente rilevante sulle workstation utilizzate per gestire software, siti web o infrastrutture.
Anomaly, l’azienda responsabile di OpenCode, ha corretto il problema nella versione 1.18.33 il 28 settembre. Sono interessate le versioni dalla 1.0.137 alla 1.18.32. Poiché Anomaly non ha richiesto un CVE, l’identificatore standard comunemente assegnato alle vulnerabilità di sicurezza monitorate pubblicamente, né pubblicato un avviso di sicurezza, gli scanner di vulnerabilità e gli avvisi relativi alle dipendenze non identificheranno le installazioni ancora esposte. Gli amministratori devono controllare direttamente la versione di OpenCode installata.
Il percorso vulnerabile iniziava durante un accesso MCP. Il server remoto forniva un endpoint di autorizzazione OAuth, ovvero l’indirizzo web utilizzato per avviare una procedura di accesso basata su autorizzazioni. Su Windows e WSL, OpenCode inviava tale indirizzo a un helper per l’apertura del browser. L’helper costruiva un comando PowerShell attorno all’indirizzo senza effettuare in modo sicuro l’escaping del suo contenuto. PowerShell è uno strumento Windows per eseguire comandi e script amministrativi. Un indirizzo appositamente predisposto poteva quindi iniettare ed eseguire un comando anziché limitarsi ad aprire la pagina prevista.
Il comportamento non veniva attivato semplicemente configurando un server MCP o aprendo una sessione OpenCode. Uno sviluppatore doveva avviare il processo di autenticazione eseguendo opencode mcp auth o effettuando la richiesta equivalente. L’autore dell’attacco doveva inoltre controllare un server MCP remoto già aggiunto dallo sviluppatore. Il server non doveva necessariamente essere malevolo al momento della configurazione iniziale. Pillar Security ha avvertito che un server precedentemente legittimo avrebbe potuto essere compromesso in seguito, oppure che il relativo dominio avrebbe potuto cambiare proprietario, creando lo stesso rischio al successivo tentativo di accesso dell’utente.
Pillar Security ha scoperto la vulnerabilità, l’ha segnalata privatamente il 29 agosto e l’ha divulgata il 19 ottobre. L’azienda l’ha classificata come critica e ha proposto un punteggio di gravità pari a 9,8 su 10. Non ha segnalato prove di sfruttamento della vulnerabilità da parte di aggressori e non ha pubblicato indicatori che gli amministratori potessero utilizzare per individuare eventuali abusi precedenti. La vulnerabilità riguarda Windows e WSL a causa del modo in cui l’helper del browser gestiva l’indirizzo su tali piattaforme. macOS e Linux non sono interessati perché, su questi sistemi, l’indirizzo viene aperto senza passare attraverso una shell dei comandi.
La correzione è stata distribuita senza essere descritta come un aggiornamento di sicurezza. La pull request che la conteneva è stata presentata come un refactoring del codice per l’avvio del browser, mentre le release notes non menzionavano alcuna vulnerabilità. La policy di sicurezza di Anomaly colloca i server MCP configurati dagli utenti al di fuori del proprio trust boundary. Secondo Pillar Security, Anomaly ha sostenuto che un server MCP malevolo fosse al di fuori del proprio threat model anche dopo che Pillar aveva chiesto all’azienda di riconsiderare la questione e ottenere un CVE. Anomaly ha pubblicato avvisi relativi ad altre vulnerabilità di code execution in OpenCode, inclusa una corretta ad agosto.
L’helper del browser alla base del problema è un package molto utilizzato chiamato open. Il suo comportamento su Windows era stato segnalato come rischio di command injection nel 2023 e il package aveva corretto il problema nella versione 11. OpenCode aveva continuato a utilizzare una release precedente. Sebbene verificare che un indirizzo di autorizzazione inizi con HTTP o HTTPS sia una difesa comune, tale controllo da solo non avrebbe impedito questo attacco, perché l’input malevolo poteva essere inserito in un normale indirizzo HTTPS. OpenCode ha aggiunto questo controllo, ma il cambiamento che ha eliminato la gestione vulnerabile dei comandi è stato l’aggiornamento alla release corretta di open.
Un problema strettamente correlato è comparso nel luglio 2025 nel proxy mcp-remote. Anche quella vulnerabilità, identificata come CVE-2025-6514, consentiva all’endpoint di autorizzazione di un server malevolo di raggiungere una riga di comando. Il caso precedente dimostra che gli indirizzi di autenticazione forniti da server di strumenti remoti possono diventare un percorso di code execution quando le applicazioni li trasmettono a una shell senza gestirli in modo sicuro.
Gli utenti Windows e WSL devono effettuare l’upgrade a OpenCode 1.18.33 o versione successiva ed eseguire opencode mcp list per controllare i server configurati. Chi non può aggiornare immediatamente deve rimuovere i server MCP remoti che non ha verificato ed evitare di avviare l’autenticazione con essi. Poiché non è previsto che gli scanner segnalino le release di OpenCode interessate, le organizzazioni non devono affidarsi esclusivamente alle notifiche automatiche delle vulnerabilità per questo problema.
Per i team che necessitano di assistenza nella gestione degli strumenti per sviluppatori e delle integrazioni di terze parti, AEU-I offre servizi IT, infrastrutturali e di consulenza con la sicurezza al primo posto. Questa vulnerabilità di OpenCode è distinta da una violazione della OpenCode Console in hosting, divulgata approssimativamente nello stesso periodo, che potrebbe aver esposto le API keys memorizzate di alcuni utenti per OpenAI, Anthropic e Google.