GlassWorm-aanval gebruikt gestolen GitHub-tokens om malware geforceerd in Python-opslagplaatsen te pushen

De GlassWorm-malwarecampagne wordt gebruikt als brandstof voor een voortdurende aanval waarbij de gestolen GitHub-tokens worden gebruikt om malware in honderden Python-opslagplaatsen te injecteren.

“De aanval richt zich op Python-projecten – waaronder Django-apps, ML-onderzoekscode, Streamlit-dashboards en PyPI-pakketten – door versluierde code toe te voegen aan bestanden als setup.py, main.py en app.py”, aldus StepSecurity. “Iedereen die pip install uitvoert vanuit een gecompromitteerde repository of klonen en de code uitvoert, zal de malware activeren.”

Volgens het beveiligingsbedrijf voor de softwareleveringsketen dateren de eerste injecties van 8 maart 2026. Toen de aanvallers toegang kregen tot de ontwikkelaarsaccounts, baseerden ze de laatste legitieme commits op de standaardtak van de beoogde repository’s met kwaadaardige code, en forceerden vervolgens de wijzigingen, terwijl ze het bericht, de auteur en de auteursdatum van de oorspronkelijke commit intact hielden.

Deze nieuwe uitloper van de GlassWorm-campagne heeft de codenaam ForceMemo gekregen. De aanval verloopt via de volgende vier stappen:

  • Compromiseer ontwikkelaarssystemen met GlassWorm-malware via kwaadaardige VS Code- en Cursor-extensies. De malware bevat een speciaal onderdeel om geheimen te stelen, zoals GitHub-tokens.
  • Gebruik de gestolen inloggegevens om kwaadaardige wijzigingen door te voeren in elke repository die wordt beheerd door het geschonden GitHub-account door versluierde malware te herbasen op Python-bestanden met de naam ‘setup.py’, ‘main.py’ of ‘app.py’.
  • De Base64-gecodeerde payload, toegevoegd aan het einde van het Python-bestand, bevat GlassWorm-achtige controles om te bepalen of de landinstelling van het systeem is ingesteld op Russisch. Als dat zo is, wordt de uitvoering overgeslagen. In alle andere gevallen doorzoekt de malware het transactiememoveld dat is gekoppeld aan een Solana-portemonnee (“BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC”) die eerder aan GlassWorm was gekoppeld om de payload-URL te extraheren.
  • Download extra payloads van de server, inclusief gecodeerd JavaScript dat is ontworpen om cryptocurrency en gegevens te stelen.

“De eerste transactie op het C2-adres dateert van 27 november 2025 – ruim drie maanden vóór de eerste GitHub repo-injecties op 8 maart 2026”, aldus StepSecurity. “Het adres heeft in totaal 50 transacties, waarbij de aanvaller regelmatig de payload-URL bijwerkt, soms meerdere keren per dag.”

De onthulling komt op het moment dat Socket een nieuwe iteratie van de GlassWorm markeerde die technisch gezien hetzelfde kernvak behoudt en tegelijkertijd de overlevingskansen en ontduiking verbetert door gebruik te maken van extensionPack en extensionDependencies om de kwaadaardige lading te leveren door middel van een transitief distributiemodel.

Tegelijkertijd schreef Aikido Security de GlassWorm-auteur ook toe aan een massacampagne die meer dan 151 GitHub-opslagplaatsen in gevaar bracht met kwaadaardige code verborgen met behulp van onzichtbare Unicode-tekens. Interessant is dat de gedecodeerde payload is geconfigureerd om de C2-instructies uit dezelfde Solana-portemonnee op te halen, wat aangeeft dat de bedreigingsactor zich in meerdere golven op GitHub-repository’s heeft gericht.

Het gebruik van verschillende leveringsmethoden en codeverduisteringsmethoden, maar dezelfde Solana-infrastructuur, suggereert dat ForceMemo een nieuwe leveringsvector is die wordt onderhouden en beheerd door de GlassWorm-bedreigingsacteur, die nu is uitgebreid van compromitterende VS Code-extensies naar een bredere GitHub-accountovername.

“De aanvaller injecteert malware door geforceerd naar de standaardtak van gecompromitteerde repository’s te pushen”, aldus StepSecurity. “Deze techniek herschrijft de git-geschiedenis, behoudt het oorspronkelijke commit-bericht en de auteur, en laat geen pull-verzoek of commit-spoor achter in de gebruikersinterface van GitHub. Geen enkele andere gedocumenteerde supply chain-campagne gebruikt deze injectiemethode.”

Thijs Van der Does