17 października 2026 OpenCode, twórca popularnego agenta do programowania z modelami AI, napisał na X, że w nocy ktoś włamał się do „older system” i że incydent dotknął 1,4% użytkowników OpenCode Console, hostowanej usługi, w której część użytkowników trzyma klucze API do zewnętrznych dostawców modeli. Od tamtej pory użytkownicy zgłaszają alerty kosztów i nieautoryzowane obciążenia. CVE nie ma i nie będzie, skaner niczego nie wykaże, a OpenCode nie może tych kluczy unieważnić, bo wystawił je ktoś inny. To podręcznikowy przypadek, w którym zgłoszenie zamyka dowód rotacji sekretu, a nie numer wersji.
Co wiemy, a czego nie
| Twierdzenie | Status | Źródło |
|---|---|---|
| Włamanie do „older system” w nocy z 16 na 17.10.2026 | Relacjonowane (cytat wpisu na X) | TechCrunch |
| Dotyczy 1,4% użytkowników OpenCode Console | Relacjonowane (cytat wpisu na X) | TechCrunch, Severity Daily |
| Poszkodowani dostali e-mail, kto go nie dostał, nie jest dotknięty | Relacjonowane (deklaracja firmy) | TechCrunch |
| Klucze były w obszarach roboczych (workspaces) Console | Relacjonowane | TechCrunch |
| Lokalna aplikacja i CLI OpenCode nie są dotknięte („those keys never come to us”) | Relacjonowane (wpis współzałożyciela) | TechCrunch |
| Klucze były nadużywane: alerty kosztów, obciążenia od setek do ponad 1000 USD na konto | Relacjonowane (zgłoszenia użytkowników) | TechCrunch |
| Anthropic i Google zablokowały klucze uznane za ujawnione, OpenAI zwraca koszty | Relacjonowane | TechCrunch |
| Sposób włamania, sposób przechowywania kluczy, pełna skala nadużyć | Nieujawnione | TechCrunch, Severity Daily |
| Komunikat na stronie, w dokumentacji lub changelogu OpenCode | Brak (stan sprawdzony przez Severity Daily) | Severity Daily |
| CVE | Brak | — |
Dwie rzeczy wymagają ostrożności. Po pierwsze, 1,4% to odsetek użytkowników Console, a nie liczba kluczy, użytkowników OpenCode w ogóle ani klientów dostawców AI. Po drugie, OpenCode opisał incydent jako związany z „large-scale distillation attack”. Destylacja to masowe odpytywanie modelu w celu trenowania tańszego modelu na jego odpowiedziach. Opisuje więc, do czego mogły posłużyć klucze, a nie jak zostały zdobyte. Na to zwraca uwagę Severity Daily. Sposobu włamania i sposobu przechowywania kluczy (np. czy były szyfrowane) firma nie ujawniła. Nie dopowiadam tu ani techniki, ani sprawcy.
Jeszcze jedna obserwacja o kanale komunikacji. Według Severity Daily na stronie opencode.ai, w dokumentacji, w changelogu (ostatni wpis v2.0.32 z 16.10) ani na stronie spółki matki nie było informacji o incydencie. Jedynym źródłem pierwotnym jest wpis na X. Dla rejestru dostawców to osobny punkt: dostawca, który przechowuje Twoje sekrety, informuje o ich ekspozycji tylko w mediach społecznościowych.
Dlaczego to temat dla VE, skoro nie ma CVE
Vulnerability management zwykle zaczyna się od pytania „jaka wersja jest podatna”. Tutaj nie ma wersji. Jest sekret, nad którym straciłeś kontrolę, bo leżał w cudzej usłudze. Tradycyjny skaner, SCA ani CSPM nie pokażą żadnego findingu. A skutek jest bardzo konkretny: ktoś może wywoływać API na Twój koszt, w ramach Twoich limitów i pod Twoją tożsamością u dostawcy.
Najważniejsza różnica wobec zwykłego incydentu dostawcy: OpenCode nie może tego naprawić za Ciebie. Nie unieważni klucza OpenAI, Anthropic ani Google, bo ich nie wystawił. Zmiana hasła do Console również nic nie da, bo klucz działa niezależnie od niej. Każde działanie naprawcze należy do właściciela konta u każdego z dostawców. Ten wzorzec (właścicielem remediacji jest ktoś inny niż dostawca, u którego był problem) opisywałem w innym kontekście przy ServiceNow. Tutaj jest odwrócony: dostawca, u którego był incydent, nie ma czym naprawić.
Kontrola w organizacji
- Czy ktoś używa OpenCode Console? Odróżnij lokalne narzędzie (klucze zostają na komputerze użytkownika) od hostowanej Console. Sprawdź SSO, wydatki na karty firmowe, ruch do domen OpenCode w proxy, ankietę w zespołach deweloperskich. Narzędzia AI dla programistów często wchodzą do firmy oddolnie, poza katalogiem SaaS.
- Czy w Console trafiły klucze firmowe? Klucze z kont organizacji u dostawców modeli, a nie tylko prywatne klucze pracowników.
- Rotuj niezależnie od e-maila. Firma twierdzi, że kto nie dostał wiadomości, ten nie jest dotknięty. Nie da się tego zweryfikować z zewnątrz, a koszt pomyłki to aktywny klucz z kartą płatniczą. Jeśli klucz firmowy był zapisany w Console, unieważnij go.
- Rotacja bez przestoju: nowy klucz u dostawcy, wdrożenie w aplikacjach, które go używają, unieważnienie starego. Sprawdź, czy dostawca już go zablokował. Wtedy przestój mógł się już zdarzyć i warto wiedzieć, które systemy przestały działać.
- Przegląd użycia i kosztów od 16.10.2026 w panelu każdego dostawcy: nietypowe modele, wolumen, projekty, godziny. Przy nadużyciu złóż wniosek o zwrot. TechCrunch relacjonuje, że OpenAI i OpenCode zwracają koszty.
- Twarde ograniczenia na nowe klucze: limity wydatków, alerty, minimalne uprawnienia i osobne projekty dla narzędzi zewnętrznych, żeby kolejny wyciek miał mniejszy zasięg.
W zgłoszeniach do dostawców ani w ticketach wewnętrznych nie wklejaj samych kluczy. Wystarczy identyfikator klucza lub projektu.
Jak to wpisać do rejestru
| Pole w rejestrze | Wartość |
|---|---|
| Typ | Incydent dostawcy, ekspozycja sekretów, bez CVE |
| Zasób | Hostowana usługa OpenCode Console (nie lokalna aplikacja, nie CLI) |
| Klasa sekretu | Klucze API zewnętrznych dostawców modeli (np. OpenAI, Anthropic, Google) zapisane w workspace Console |
| Właściciel remediacji | Właściciel konta u każdego dostawcy modeli, nie OpenCode |
| Pewność | Średnia: deklaracja firmy na X, relacje mediów, brak komunikatu na stronie producenta |
| Kryterium zamknięcia | Dowód unieważnienia starych kluczy u każdego dostawcy, przegląd użycia i kosztów od 16.10.2026, decyzja o dalszym korzystaniu z Console |
| Powiązane | Rejestr dostawców (TPRM), polityka przechowywania sekretów w usługach SaaS |
Kryterium zamknięcia jest tu najważniejsze. Ticket z treścią „zaktualizuj OpenCode” zostałby zamknięty bez żadnego efektu, bo lokalna aplikacja nie była dotknięta, a nowa wersja nie unieważnia żadnego klucza. Dowodem zamknięcia jest lista unieważnionych kluczy z datą, wynik przeglądu użycia i decyzja, czy organizacja dalej pozwala przechowywać klucze w Console.
Szerzej: sekrety w narzędziach AI dla deweloperów
To nie pierwszy raz, gdy klucze do modeli są najcenniejszym zasobem w otoczeniu agentów AI. Przy platformach agentów z domyślnym docker-compose klucze leżały w zmiennych środowiskowych kontenera z otwartym narzędziem shell. Tutaj leżały w hostowanej usłudze pośredniczącej. Wspólny wniosek dla polityki: każda usługa, która przechowuje klucz do API modelu, wchodzi do zakresu ochrony sekretów. Potrzebny jest dla niej właściciel, inwentarz i procedura rotacji, zanim zdarzy się incydent.
Powiązane na blogu
- DB-GPT, Langchain-Chatchat, Letta, piflow — agenci AI z narzędziem shell i kluczami w środowisku
- AOMEI Backupper i AnyViewer — incydent dostawcy bez CVE i bez poprawionej wersji
- ServiceNow: hosted vs self-hosted — kto jest właścicielem remediacji
- AWX: dwa SSRF, dwa sekrety — granularność sekretów jako ograniczenie zasięgu
Źródła
- TechCrunch — „Hackers hit AI coding tool OpenCode, running up charges on users’ AI accounts”, 19.10.2026 (cytaty wpisów OpenCode i Daxa Raada na X, nadużycia, reakcje dostawców) — techcrunch.com
- Severity Daily — analiza źródeł ujawnienia: brak komunikatu na stronie, w dokumentacji i changelogu, znaczenie określenia „distillation” — severitydaily.com
- The Hacker News — „OpenCode Console breach may have…”, 19.10.2026 (nieodczytany, HTTP 403 w dniu weryfikacji) — thehackernews.com
Nota redakcyjna: wpis powstał na podstawie szkicu VMRT Radar z 19 października 2026 i został zweryfikowany ze źródłami 20 października 2026 (ok. 19:20 CEST): artykuł TechCrunch z 19.10.2026 (cytaty wpisów OpenCode i współzałożyciela na X, 1,4% użytkowników Console, e-maile do poszkodowanych, zakres ograniczony do Console, nadużycia kluczy, blokady i zwroty u dostawców, brak szczegółów technicznych) oraz analiza Severity Daily (brak komunikatu na opencode.ai, w dokumentacji, changelogu i na stronie spółki matki). Oryginalnego wpisu na X nie odczytałem bezpośrednio, a artykuł The Hacker News zwrócił błąd 403, więc wszystkie twierdzenia OpenCode podaję jako relacjonowane. Względem szkicu dodałem Google do listy dostawców, informację o zgłoszonych nadużyciach i reakcjach dostawców oraz o braku komunikatu poza X. Sformułowanie o „wycofywanym” systemie ze szkicu pominąłem, bo źródło mówi tylko o „older system”. Nie potwierdziłem: liczby kont ani kluczy, sposobu włamania, sposobu przechowywania kluczy, pełnej skali nadużyć ani tego, czy incydent się zakończył (według TechCrunch 19.10 trwał). Incydent nie ma CVE, więc katalog KEV go nie dotyczy (sprawdzone ponownie 22.10.2026, katalog 2026.10.21). Procedura kontroli, wpis do rejestru i kryterium zamknięcia to oceny autora.