NOWOŚĆ! Szkolenie AI w pracy admina
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
NOWOŚĆ! Szkolenie AI w pracy admina
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Badacze bezpieczeństwa z Manifold zidentyfikowali 77 złośliwych rozszerzeń do Visual Studio Code w Open VSX. Wykorzystują one nazwy i opisy prawdziwych wtyczek z VS Code Marketplace. Zidentyfikowane rozszerzenia zostały już usunięte z Open VSX.
58 wtyczek było lżejszym wariantem kampanii. Wysyłały swojemu właścicielowi nazwę hosta użytkownika, a czasami także nazwę folderu workspace lub wersję edytora, wraz z identyfikatorem śledzenia przypisanym do danego pakietu.
Sposób przesłania tych danych był różny – niektóre wykonywały POST do /api/v1/metrics lub /api/v1/events, inne używały parametrów żądania GET, a niektóre miały pełną logikę dla wielu endpointów.
Jednak pozostałe 19 robiło trochę więcej. W kilka sekund po aktywacji wykonywały żądanie, w którym wysyłały nazwę hosta i nazwę użytkownika, wersję edytora, identyfikator urządzenia, system operacyjny, język i strefę czasową, a także nazwę folderu otwartego workspace i jego pełną ścieżkę w systemie plików.
Następnie przechodziły do folderu .git. Z pliku config pobierały adresy URL dla origin i upstream, a także część domenową skonfigurowanego commit email. Z HEAD i plików ref pozyskiwały bieżący branch oraz hash commita. Ze środowiska CI uzyskiwały wartości GITHUB_REPOSITORY, CI_PROJECT_PATH, adres kolekcji Azure DevOps i kilka innych parametrów.
Wtyczki odczytywały wartość konfiguracji edytora dotyczącą rezygnacji z telemetrii, jednak dane były wysyłane niezależnie od niego.

Opisy wtyczek zawierały sekcję “Telemetry”, która zapewniała, że wtyczki nie wysyłają nigdzie kodu źródłowego, poświadczeń, tokenów, zmiennych środowiskowych. Te zapewnienia zostały potwierdzone przez badaczy. Nie zgadza się tylko jedno – dane CI opisano jako dotyczące wyłącznie nazw znanych zmiennych (w ramach konfiguracji) CI, ale nigdy ich wartości. To nie jest prawdą, bo także wartości są przesyłane.
W opisie nie wspomniano nic o odczytywaniu (i ignorowaniu) preferencji użytkownika w zakresie telemetrii. Nie było też mowy o wyszukiwaniu zastępczych endpointów, gdy główny nie działa – a to już działanie, które co najmniej wzbudza czujność. Pominięto też fakt, że rozszerzenia w praktyce nie dostarczają żadnej funkcjonalności.

Główna domena, do której wysyłane są dane – mangorbit[.]com – została zarejestrowana 15 lipca 2026 r., czyli na 11 dni przed pojawieniem się pierwszego rozszerzenia. Większość wtyczek używała subdomen pulse.mangorbit[.]com i pulse2.mangorbit[.]com. Jedna używa api.mangorbit[.]com, a jedna losowych subdomen w cb.mangorbit[.]com.

Część wtyczek nie poddawała się, gdy nie udało się przesłać danych. Ponowienie próby następowało po 15 i 50 minutach, następnie po 3,5 godzinach i później co siedem lub osiem godzin. Kod traktował dowolną odpowiedź HTTP jako sukces – wystarczyło, że żądanie dotarło.
A jeśli wszystkie endpointy zawiodły, wtyczka odczytywała rekordy DNS TXT dla subdomeny _beacon i znajdowała zastępczy adres URL. To mechanizm awaryjny na wypadek zablokowania subdomen zapisanych w kodzie. Pozwalało to atakującemu zaktualizować infrastrukturę przez kanał, którego większość mechanizmów filtrowania ruchu nie kontroluje.
Zarówno Microsoft VS Code Marketplace, jak i Open VSX są znanymi źródłami faktycznych rozszerzeń i wiele projektów publikuje w obu miejscach. To sprawia, że tworzy się potencjalna luka – mimo powtarzających się wtyczek, wciąż mają one odrębne przestrzenie nazw. Oznacza to, że nazwa rozszerzenia jednoznacznie należąca do kogoś w jednym rejestrze może oznaczać coś innego w drugim. Tę zależność być może chcieli wykorzystać twórcy znalezionych przez badaczy wtyczek.
Programistom przypominamy, że każda instalowana wtyczka to po prostu kolejna aplikacja – z technicznego punktu widzenia rozszerzenia, mimo mniejszych od standardowego programu możliwości, wciąż mogą wyrządzić szkody lub gromadzić dane.
Warto ograniczać liczbę wtyczek do niezbędnego minimum. W organizacjach polecamy rozważyć wdrożenie whitelist lub manualnego zatwierdzania rozszerzeń przed instalacją u użytkowników (np. przez wewnętrzny “sklep” z wtyczkami).
Domeny:
DNS:
User-Agent:
Źródło: manifold.security
~Tymoteusz Jóźwiak