Wystarczyło połączenie ze złośliwym serwerem MCP, aby OpenCode uruchomił niebezpieczne polecenia na komputerze użytkownika. Badacze z Pillar Security ujawnili poważną podatność w popularnym narzędziu AI do programowania, która pozwalała na zdalne wykonywanie kodu podczas uwierzytelniania OAuth. Co gorsza, atak nie potrzebował dodatkowego potwierdzenia ze strony użytkownika. Problem dotyczył systemów Windows oraz WSL, natomiast natywny Linux i macOS nie były podatne na opisany mechanizm.

Według raportu Pillar Security luka zasługuje na ocenę 9,8/10 w skali CVSS 3.1, co oznacza zagrożenie o krytycznym poziomie. Jest to proponowana ocena badaczy, ponieważ podatności nie przypisano oficjalnego numeru CVE.

Złośliwy serwer MCP mógł uruchomić dowolne polecenie

OpenCode jest otwartym narzędziem AI pomagającym programistom w pisaniu i modyfikowaniu kodu. Obsługuje również MCP (Model Context Protocol), czyli standard pozwalający łączyć aplikacje AI z zewnętrznymi usługami, bazami danych czy narzędziami.

Problem pojawiał się podczas procesu logowania OAuth do zdalnego serwera MCP. Serwer przekazywał adres strony autoryzacyjnej, który OpenCode próbował automatycznie otworzyć w przeglądarce.

Badacze odkryli, że specjalnie przygotowany adres URL mógł doprowadzić do wykonania poleceń PowerShell na komputerze użytkownika. Aplikacja nie zabezpieczała odpowiednio danych przekazywanych do mechanizmu uruchamiającego przeglądarkę.

W praktyce atakujący kontrolujący serwer MCP mógł wykorzystać lukę do uruchomienia własnego kodu z uprawnieniami użytkownika OpenCode. Potencjalne konsekwencje obejmowały dostęp do lokalnych plików, kradzież danych czy instalację złośliwego oprogramowania.

Szczególnie niepokojący jest brak potrzeby dodatkowego kliknięcia lub zatwierdzenia polecenia. Wystarczało wcześniejsze skonfigurowanie podatnego połączenia ze złośliwym albo przejętym serwerem MCP i uruchomienie procesu uwierzytelniania.

Miliony pobrań i poważny problem z bezpieczeństwem

OpenCode cieszy się sporą popularnością wśród programistów korzystających z AI. Według danych przytoczonych przez Pillar Security projekt osiągał w momencie publikacji raportu około 3 milionów pobrań tygodniowo z npm oraz 211 tysięcy gwiazdek na GitHubie.

Przy takim zainteresowaniu każda poważna podatność zasługuje na uwagę. Szczególnie gdy narzędzie ma dostęp do plików i może samodzielnie wykonywać polecenia systemowe.

Co ciekawe, podobny mechanizm ataku był już wcześniej znany. W lipcu 2025 roku ujawniono podatność CVE-2025-6514 w narzędziu mcp-remote, ocenioną na 9,6/10. Badacze wskazali również dwa inne zgłoszenia CVE z 2025 roku dotyczące zbliżonych błędów.

Mimo wcześniejszych ostrzeżeń niebezpieczny sposób obsługi adresów URL trafił do OpenCode. Najwyraźniej doświadczenia innych projektów nie wystarczyły, aby uniknąć powtórki.

Poprawka została wydana, ale producent nie ogłosił zagrożenia

Pillar Security zgłosił problem firmie Anomaly, odpowiadającej za rozwój OpenCode, 29 sierpnia tego roku. Poprawka pojawiła się już 28 września w wersji 1.18.33.

Naprawa obejmowała między innymi aktualizację biblioteki open do wersji 11.0.4 i dodatkowe zabezpieczenia podczas otwierania adresów URL. Według badaczy szczególnie ważna okazała się poprawiona obsługa argumentów przekazywanych do PowerShella.

Największe kontrowersje budzi jednak sposób poinformowania użytkowników. Producent nie opublikował osobnego komunikatu bezpieczeństwa ani nie wystąpił o przyznanie numeru CVE.

Według Pillar Security firma uznała złośliwe serwery MCP za zagrożenie pozostające poza przyjętym modelem bezpieczeństwa produktu.

Można dyskutować o odpowiedzialności użytkownika za podłączanie nieznanych usług. Jednak sytuacja, w której zewnętrzny serwer może doprowadzić do uruchomienia poleceń systemowych bez dodatkowej zgody, zdecydowanie zasługuje na wyraźne ostrzeżenie.

Brak numeru CVE ma również praktyczne konsekwencje. Popularne skanery podatności i systemy automatycznych powiadomień nie wykryją bezpośrednio problemu na podstawie identyfikatora zagrożenia.

Kto powinien zaktualizować OpenCode?

Podatność obejmowała OpenCode od wersji 1.0.137 do 1.18.32 działające na Windows oraz w środowisku Windows Subsystem for Linux (WSL).

Użytkownicy natywnego Linuksa i macOS nie byli narażeni na opisany wariant ataku. Wynikało to z odmiennego sposobu uruchamiania przeglądarki, który nie przekazywał adresu URL przez powłokę systemową.

Jeśli korzystasz z OpenCode, możesz sprawdzić zainstalowaną wersję poleceniem:

opencode --version

Następnie zaktualizuj aplikację do najnowszego dostępnego wydania, na przykład za pomocą oficjalnego polecenia aktualizacyjnego:

opencode upgrade

Jeżeli pracujesz na Windows lub WSL i nie możesz natychmiast wykonać aktualizacji, dobrze jest tymczasowo odłączyć niezaufane zdalne serwery MCP.

Nie ma potwierdzonych w przytoczonym raporcie informacji o rzeczywistych atakach wykorzystujących podatność na użytkowników OpenCode. Badacze przedstawili jednak techniczny mechanizm pozwalający na jej wykorzystanie.

MCP daje spore możliwości, ale podłączanie mało znanych serwerów do AI może się kiepsko skończyć. Szczególnie gdy aplikacja ma dostęp do plików i może wykonywać polecenia na Twoim komputerze. Dlatego zanim dodasz kolejny serwer MCP, sprawdź, kto za nim stoi. No i aktualizuj OpenCode, bo jak widać, nawet popularne narzędzia potrafią zaliczyć poważną wpadkę z bezpieczeństwem.

Źródła: Pillar Security, GitHub OpenCode, NVD.