Cybersecurity-onderzoekers hebben een nieuwe versie van de GlassWorm-campagne gemarkeerd die volgens hen een “significante escalatie” vertegenwoordigt in de manier waarop deze zich via het Open VSX-register verspreidt.
“In plaats van te eisen dat elke kwaadaardige lijst de loader rechtstreeks insluit, maakt de bedreigingsacteur nu misbruik van extensionPack en extensionDependencies om aanvankelijk op zichzelf staande extensies in latere updates om te zetten in transitieve leveringsvoertuigen, waardoor een goedaardig ogend pakket pas een afzonderlijke GlassWorm-gekoppelde extensie kan gaan trekken nadat het vertrouwen al is gevestigd”, aldus Socket in een vrijdag gepubliceerd rapport.
Het beveiligingsbedrijf voor de softwareleveringsketen zei dat het sinds 31 januari 2026 minstens 72 extra kwaadaardige Open VSX-extensies heeft ontdekt, gericht op ontwikkelaars. Deze extensies bootsen veelgebruikte hulpprogramma’s voor ontwikkelaars na, waaronder linters en formatters, coderunners en tools voor op kunstmatige intelligentie (AI) gebaseerde codeerassistenten zoals Clade Code en Google Antigravity.
De namen van enkele van de extensies staan hieronder vermeld. Open VSX heeft sindsdien stappen ondernomen om ze uit het register te verwijderen –
- hoekige-studio.ng-hoekige-extensie
- crotoapp.vscode-xml-extensie
- gvotcha.claude-code-extensie
- mswincx.antigravity-cockpit
- tamokill12.foundry-pdf-extensie
- turbobase.sql-turbo-tool
- vce-brendan-studio-eich.js-debuger-vscode
GlassWorm is de naam die wordt gegeven aan een voortdurende malwarecampagne die herhaaldelijk Microsoft Visual Studio Marketplace en Open VSX heeft geïnfiltreerd met kwaadaardige extensies die zijn ontworpen om geheimen te stelen en cryptocurrency-portefeuilles leeg te maken, en geïnfecteerde systemen te misbruiken als proxy’s voor andere criminele activiteiten.
Hoewel de activiteit voor het eerst werd opgemerkt door Koi Security in oktober 2025, werden npm-pakketten die dezelfde tactieken gebruikten – met name het gebruik van onzichtbare Unicode-tekens om kwaadaardige code te verbergen – al in maart 2025 geïdentificeerd.
De nieuwste versie behoudt veel van de kenmerken van GlassWorm: het uitvoeren van controles om te voorkomen dat systemen met een Russische landinstelling worden geïnfecteerd en het gebruik van Solana-transacties als een dead drop-resolver om de command-and-control (C2)-server op te halen voor verbeterde veerkracht.
Maar de nieuwe reeks extensies is ook voorzien van zwaardere verduistering en roteert Solana-wallets om detectie te omzeilen, en misbruikt extensierelaties om kwaadaardige ladingen in te zetten, vergelijkbaar met hoe npm-pakketten afhankelijk zijn van malafide afhankelijkheden om onder de radar te blijven. Ongeacht of een extensie wordt gedeclareerd als “extensionPack” of “extensionDependencies” in het “package.json”-bestand van de extensie, gaat de editor verder met het installeren van elke andere extensie die daarin wordt vermeld.
Daarbij gebruikt de GlassWorm-campagne één extensie als installatieprogramma voor een andere schadelijke extensie. Dit opent ook nieuwe aanvalsscenario’s voor de toeleveringsketen, aangezien een aanvaller eerst een volledig onschadelijke VS Code-extensie naar de markt uploadt om de beoordeling te omzeilen, waarna deze wordt bijgewerkt om een aan GlassWorm gekoppeld pakket als afhankelijkheid te vermelden.
“Als gevolg hiervan kan een uitbreiding die er bij de eerste publicatie niet-transitief en relatief goedaardig uitzag, later een transitief GlassWorm-bezorgvoertuig worden zonder enige verandering in het schijnbare doel ervan”, aldus Socket.
In een gelijktijdig advies schreef Aikido de GlassWorm-bedreigingsacteur toe aan een massacampagne die zich verspreidt over open-sourcerepository’s, waarbij de aanvallers verschillende repository’s injecteerden met onzichtbare Unicode-tekens om een payload te coderen. Hoewel de inhoud niet zichtbaar is wanneer deze in code-editors en terminals wordt geladen, wordt deze gedecodeerd naar een lader die verantwoordelijk is voor het ophalen en uitvoeren van een script in de tweede fase om tokens, inloggegevens en geheimen te stelen.
Naar schatting zijn niet minder dan 151 GitHub-opslagplaatsen getroffen als onderdeel van de campagne tussen 3 en 9 maart 2026. Bovendien is dezelfde Unicode-techniek ingezet in twee verschillende npm-pakketten, wat wijst op een gecoördineerde, multi-platform push –
- @aifabrix/miso-client
- @iflow-mcp/watercrawl-watercrawl-mcp
“De kwaadaardige injecties komen niet binnen in duidelijk verdachte commits”, zegt beveiligingsonderzoeker Ilyas Makari. “De omringende veranderingen zijn realistisch: aanpassingen aan de documentatie, versieverbeteringen, kleine refactoren en bugfixes die stilistisch consistent zijn met elk doelproject. Dit niveau van projectspecifieke maatwerk suggereert sterk dat de aanvallers grote taalmodellen gebruiken om overtuigende dekkingscommits te genereren.”
PhantomRaven of onderzoeksexperiment?
De ontwikkeling komt op het moment dat Endor Labs zei dat het 88 nieuwe kwaadaardige npm-pakketten had ontdekt die in drie golven tussen november 2025 en februari 2026 waren geüpload via 50 wegwerpaccounts. De pakketten worden geleverd met functionaliteit om gevoelige informatie van de besmette machine te stelen, inclusief omgevingsvariabelen, CI/CD-tokens en systeemmetagegevens.
De activiteit valt op door het gebruik van Remote Dynamic Dependencies (RDD), waarbij het metadatabestand “package.json” een afhankelijkheid specificeert op een aangepaste HTTP-URL, waardoor de operators de kwaadaardige code direct kunnen wijzigen en inspectie kunnen omzeilen.
Hoewel de pakketten aanvankelijk werden geïdentificeerd als onderdeel van de PhantomRaven-campagne, merkte het applicatiebeveiligingsbedrijf in een update op dat ze waren geproduceerd door een beveiligingsonderzoeker als onderdeel van een legitiem experiment – een bewering die het betwistte en daarbij drie alarmsignalen aanhaalde. Dit omvat het feit dat de bibliotheken veel meer informatie verzamelen dan nodig is, geen transparantie bieden aan de gebruiker en worden gepubliceerd met opzettelijk gerouleerde accountnamen en e-mailadressen.
Vanaf 12 maart 2026 heeft de eigenaar van de pakketten aanvullende wijzigingen aangebracht, waarbij de payload voor het verzamelen van gegevens die wordt geleverd via enkele van de npm-pakketten die gedurende de periode van drie maanden zijn gepubliceerd, is vervangen door een simpele “Hallo wereld!” Bericht.
“Hoewel het verwijderen van code die uitgebreide informatie verzamelde zeker welkom is, benadrukt het ook de risico’s die gepaard gaan met URL-afhankelijkheden”, aldus Endor Labs. “Als pakketten afhankelijk zijn van code die buiten het npm-register wordt gehost, behouden auteurs de volledige controle over de payload zonder een nieuwe pakketversie te publiceren. Door een enkel bestand op de server te wijzigen – of het simpelweg af te sluiten – kunnen ze in stilte het gedrag van elk afhankelijk pakket in één keer veranderen of uitschakelen.”