Az Open VSX piacterén 77 kiegészítőről derült ki, hogy valós fejlesztői eszközöket utánoznak, miközben adatokat küldenek azokról a rendszerekről és fejlesztői környezetekről, amelyekre telepítették őket.
A „gonosz iker” kiegészítőket a Manifold Security szerint 2026. július 26. és augusztus 1. között töltötték fel a tárolóba. A csomagokat 2026. augusztus 3-án eltávolították az Open VSX-ből.
„A legtöbb csomagban alig küld többet a gép hostnevénél” – mondták az Ax Sharma és Cody Nash biztonsági kutatók nyilatkozatukban. „Tizenkilenc közülük viszont részletes leírást küld a gépről, a szerkesztőben megnyitott tárolóról és arról a CI rendszerről, amelyben a szerkesztő fut.”
A beazonosított kiegészítők közül 58-at olyan egyszerű eszközként írtak le, amelyek a hostname-et, és egyes esetekben a workspace mappa nevét vagy a szerkesztő verzióját próbálják kiszivárogtatni.
A többi már felderítő célú kódot tartalmaz, és fejlesztői környezettel kapcsolatos adatokat küld: a helyi hostname-et és az operációs rendszer felhasználónevét, a szerkesztő nevét, verzióját, a host típusát és a gép azonosítóját, a platformot és architektúrát, a területi beállítást és az időzónát, valamint a megnyitott workspace mappanevét és a teljes fájlrendszerbeli elérési útját.
Mindkét típus ugyanarra az adatkiszivárogtató domainre küldi az információkat, és a kódjukban, illetve viselkedésükben is sok a hasonlóság. A 19 kiterjedtebb adatgyűjtést végző kiegészítő neve:
- amd.gaia-vscode
- artsy.artsy-studio-extension-pack
- configcat.configcat-feature-flags
- iotaledger.iota-move
- marketplace.visualstudio
- obyte.oscript-vscode-plugin
- openeuphoria.vscode-euphoria
- oss.sfmc-devtools-vscode
- rumbledb.jsoniq-vscode
- ssagov.uef-snippets
- taskfile.vscode-task
- doi.fileheadercomment
- mengsiCode.vscode-django-boilerplate
- move.move-analyzer
- uavcan.dsdl
- vs-publisher-988541.apexsql-power-tools
- casualjim.gotemplate
- jcamp.dotnet-test-provider-view
- superposition.supertoml-analyzer
A kampány érdekessége, hogy valódi Open VSX kiegészítők nevét, namespace-ét és leírását használja újra, de ezeket teljesen más fiókok alatt teszik közzé, és alacsony verziószámot kapnak (például 0.0.1). A fő módosítás az, hogy a csomagolt „extension.js” fájl tartalmát lecserélik olyan kódra, amely adatokat gyűjt és továbbít, miközben a gyűjtést „anonim használati statisztikaként” tüntetik fel.
Egyik kiegészítő sem nyújtja a leírásában ígért funkciókat. Ehelyett egy státuszsor-elemet jelenítenek meg, egy üzenettel, hogy aktívak, majd elindítják az adatküldést. Mind a 77 kiegészítő a „mangorbit[.]com” címre küldi az adatokat, ezt a domaint 2026. július 15-én jegyezték be, 11 nappal az első csomagok publikálása előtt.
A második csoportba tartozó kiegészítőkről az is kiderült, hogy a következő lépéseket hajtják végre:
- Átvizsgálják a workspace .Git könyvtárában lévő fájlokat, hogy megszerezzék a Git távoli hostok és szervezetek adatait, a fejlesztő beállított e-mail-címének domainjét, az aktuális branchet és a HEAD commit SHA hashét.
- Felsorolnak legfeljebb 60 telepített kiegészítő-azonosítót, és kiolvassák a proxy hostnevét a környezeti változókból.
- Összegyűjtik a jelen lévő CI-jelölők nevét, valamint külön a CI környezetekből a GitHub_REPOSITORY és a CI_PROJECT_PATH értékét, az Azure DevOps collection URI-t, a Buildkite organisation slugot, a CircleCI projekt felhasználónevét, a Codespace nevét és a Gitpod workspace context URL-jét.
- Beolvassák a szerkesztő saját telemetria-kikapcsolási beállítását, ellenőrzik, hogy engedélyezve van-e, majd elküldik az állapotát.
További elemzés alapján a rosszindulatú kód tartalék megoldással is készül: DNS TXT rekordot kérdez le, hogy egy alternatív adatküldési URL-t szerezzen, ha a fő domain blokkolás alá kerül vagy leáll. A felderítő változat újrapróbálkozási mechanizmust is tartalmaz, amely később indítja el az adatgyűjtést, ami arra utal, hogy a cél nem egy egyszeri kísérlet.
„A felderítő változatban a próbálkozások nagyjából tizenöt, ötven perc és három és fél óra után jönnek, majd hét-nyolc óránként, minden szerkesztő-újraindítás után folytatódnak, és csak hét nap után adják fel” – magyarázták a kutatók. „Egy gépet, amely offline van, tűzfal mögött működik, vagy olyan proxy mögött, amely eldobja az első kérést, egy héten át újra és újra megpróbálnak elérni.”
„A felderítő változat ellenőrzi, hogy a megnyitott workspace saját devcontainer.json vagy .vscode/extensions.json fájlja hivatkozik-e a kiegészítő azonosítójára, és az eredményt egyetlen flagként jelenti. Egyszerűen fogalmazva megkülönbözteti azokat a telepítéseket, amelyeket egy repository konfigurációja okozott, azoktól, amelyeket egy ember választott. Pontosan erre az adatra van szükség, ha az a kérdés, hogy hogyan és honnan húznak be.”
A nyilvánosságra hozatal egybeesik azzal, hogy 450 egyedi npm csomag, összesen 2244 artifact érintett egy új szoftver-ellátási lánc elleni támadásban, amelynek célja egy információtolvaj kártevő terjesztése, majd a megszerzett npm token felhasználása ugyanazzal a kártevővel fertőzött, trójai csomagok feltöltésére. A kompromittálási kampány kódneve: ChainDrop.
„A rosszindulatú kiadások egy Mini Shai-Hulud variánst tartalmaznak, egy önterjedő, hitelesítő adatokat lopó férget, amelyet egy nagy méretű, erősen obfuszkált, Bun-alapú JavaScript payload szállít” – közölte a Microsoft közleménye. „A kártevő jellemzően automatikusan lefut egy npm preinstall lifecycle hookon keresztül, még azelőtt, hogy a csomag telepítése befejeződne.”
„A kártevő a megszerzett GitHub-hozzáférési adatokkal azt is meg tudja tenni, hogy Claude- és Visual Studio Code-konfigurációs fájlokat fecskendez be tárolókba. Így tartósan megveti a lábát, és egy plusz, fejlesztőről fejlesztőre terjedő fertőzési útvonalat hoz létre.”
Bár az alkalmazott módszerek hasonlítanak a korábbi Shai-Hulud npm-féreggel kapcsolatos tevékenységnél megfigyeltekre, a mostani támadássorozatot egyelőre nem kötötték konkrét szereplőhöz.
„Ez a minta olyan technikákat is bemutat, amelyekről a korábbi Shai-Hulud jelentések nem számoltak be: letölt egy önálló Bun runtime-ot, amellyel egy beágyazott második fázist futtat, moduláris dispatchert használ külön GitHub- és domainalapú terjesztési csatornákkal, valamint automatikus indulási hookokat helyez el a .claude és .vscode könyvtárakban, hogy elérje azokat a fejlesztőket és AI kódolási ügynököket, akik klónozzák a forráskódot” – írta a Socket közleményében.
Az OX Security szerint az npm-et célzó, folyamatos ellátási lánc elleni támadások azt mutatják, hogy olyan security rétegre van szükség, amely túlmutat a telepítési scriptek blokkolásán és a karbantartói fiókokhoz kötelező kétfaktoros hitelesítésen (2FA).
„Olyan, finomhangolt jogosultságkezelés kell, amely pontosan szabályozza, mit tehet meg egy csomag, és mit nem” – mondta Moshe Siman Tov Bustan security kutató az OX Securitytől nyilatkozatában. „Az npm csomagoknak engedélyt kellene kérniük, mielőtt egyetlen paranccsal AWS-kulcsokat és GitHub-hozzáférési adatokat szivárogtathatnának ki.”

