Înapoi la Noutăți
Amenințări

Un bug în OpenCode permitea unui server MCP rău intenționat să ruleze cod la autentificare pe Windows și WSL

O vulnerabilitate de command injection corectată discret în agentul AI OpenCode permitea unui server MCP rău intenționat sau compromis să execute cod pe Windows și WSL la login-ul OAuth. Nu există CVE — actualizați la 1.18.33.

Un bug în OpenCode permitea unui server MCP rău intenționat să ruleze cod la autentificare pe Windows și WSL

Un bug în OpenCode permitea unui server MCP rău intenționat să ruleze cod la autentificare pe Windows și WSL

Dezvoltatorii care folosesc agentul de programare AI OpenCode pe Windows sau WSL ar trebui să își verifice versiunea astăzi. Versiunile 1.0.137 – 1.18.32 conțineau o vulnerabilitate de tip command injection prin care un server MCP remote rău intenționat — sau pur și simplu compromis — putea executa cod pe mașina dezvoltatorului în momentul autentificării. Remedierea a apărut în 1.18.33 pe 28 septembrie, dar fără anunț: nu există CVE și nici aviz de securitate, așa că scanerele și alertele de dependențe nu vă vor semnala că sunteți expus.

Ce s-a întâmplat

OpenCode se conectează la servere MCP (Model Context Protocol) pentru a oferi agentului unelte suplimentare. Când un server MCP remote cere autentificare, acesta îi indică clientului unde să trimită utilizatorul pentru login OAuth — authorization endpoint — iar clientul deschide adresa respectivă în browser.

Pe Windows și WSL, OpenCode transmitea această adresă, furnizată de server, unei versiuni mai vechi a popularului pachet open. Acea versiune construia o comandă PowerShell în jurul adresei fără escaping. O adresă construită să conțină sintaxă PowerShell (de exemplu o subexpresie $()) era evaluată și executată înainte ca browserul să se deschidă — cu drepturile dezvoltatorului.

Câteva detalii definesc riscul real:

  • Declanșatorul este chiar autentificarea. Codul vulnerabil rulează doar când dezvoltatorul pornește login-ul (de ex. opencode mcp auth sau cererea echivalentă). Simpla configurare a serverului sau deschiderea unei sesiuni nu îl atinge.
  • Serverul nu trebuie să fie ostil de la început. Un server MCP legitim, compromis ulterior, sau un domeniu expirat care își schimbă proprietarul poate livra aceeași adresă capcană.
  • Un URL HTTPS obișnuit este suficient. Protecția uzuală — acceptarea doar a schemelor http/https — nu ajută aici, pentru că payload-ul circulă într-o adresă HTTPS normală. OpenCode a adăugat și această verificare, dar problema a fost rezolvată efectiv prin trecerea la o versiune corectată a pachetului open.
  • macOS și Linux nu sunt afectate, deoarece acolo OpenCode deschide browserul fără a trece adresa printr-un shell.

Problema a fost raportată privat către Anomaly, compania din spatele OpenCode, pe 29 august și făcută publică pe 19 octombrie, cu un scor de severitate propus de 9,8 (critic). Remedierea a fost integrată ca refactorizare a codului de lansare a browserului, iar nici pull request-ul, nici notele de lansare nu menționează securitatea. Anomaly a refuzat să solicite un CVE; politica sa de securitate consideră serverele MCP configurate de utilizator „în afara granițelor noastre de încredere”.

De ce contează

Nu este o clasă nouă de vulnerabilități. În iulie 2025, proxy-ul mcp-remote avea o problemă aproape identică — authorization endpoint-ul unui server rău intenționat ajungea în linia de comandă — înregistrată ca CVE-2025-6514. Comportamentul pe Windows al pachetului open fusese semnalat ca risc de command injection încă din 2023 și corectat în versiunea 11; OpenCode a rămas însă pe o versiune mai veche.

Două lecții ies în evidență:

  1. Agenții AI moștenesc problemele de încredere ale fiecărui server la care se conectează. Un server MCP adăugat acum câteva luni este, practic, parte din infrastructura voastră — dacă se schimbă proprietarul sau domeniul, se schimbă și suprafața de atac a stației de lucru.
  2. „Fără CVE” nu înseamnă „fără risc”. Când un furnizor corectează discret o vulnerabilitate, uneltele bazate pe CVE rămân oarbe. Singura verificare sigură aici este versiunea instalată.

Nu există rapoarte publice privind exploatarea acestei vulnerabilități și nu au fost publicați indicatori de compromitere. Subiectul este separat de un incident raportat în aceeași perioadă la Console-ul găzduit al OpenCode, care ar fi putut expune cheile API stocate de unii utilizatori pentru OpenAI, Anthropic și Google — merită verificat separat dacă folosiți acel serviciu.

Ce trebuie făcut

  1. Actualizați OpenCode la 1.18.33 sau mai nou pe toate mașinile Windows și WSL — verificați direct versiunea, nu așteptați o alertă de la scaner.
  2. Inventariați serverele MCP cu opencode mcp list și eliminați orice server remote pe care nu l-ați verificat, mai ales până la actualizare.
  3. Tratați serverele MCP ca pe dependențe terțe: știți cine operează fiecare server, urmăriți schimbările de domeniu sau proprietar și preferați servere pe care le controlați.
  4. Verificați și bibliotecile auxiliare, nu doar pachetele principale. Aici cauza a fost o versiune învechită a unei utilități comune, adusă de unealtă.

Vulnerabilitățile care nu primesc niciodată un CVE sunt exact zona în care un feed de dependențe nu ajunge. Code review-ul asistat de AI realizat de echipa noastră analizează cum folosește efectiv codul bibliotecile — utilitare învechite, input fără escaping care ajunge într-un shell — astfel încât această clasă de probleme „tăcute”, fără CVE, să fie identificată în proiectele și uneltele voastre, nu după incident.


Credit: subiectul a fost relatat inițial de The Hacker News; vulnerabilitatea a fost descoperită și raportată de Pillar Security.

DISTRIBUIE