Skip to main content
Blog
Blog Attacks

Het sneeuwbaleffect: hoe Mini Shai-Hulud npm verandert in een wormdistributienetwerk

Mini Shai-Hulud veranderde npm-pakketten in een lus voor credentialdiefstal. Zo verspreidde de AntV-golf zich en dit moeten teams nu in de gaten houden.

May 19, 2026 6 min read
Donkere cside-banner met een npm-supply-chain-aanval van het type worm
Inhoudsopgave

TL;DR: de npm-worm Mini Shai-Hulud

Mini Shai-Hulud laat zien hoe een npm-compromis zich verspreidt na de eerste kwaadaardige publicatie. De aanvaller hoeft niet elke downstream applicatie direct te compromitteren. Ze hebben één maintaineraccount, één CI-pad of één uitvoeringspad tijdens installatie nodig dat credentials blootlegt.

Op 2026-05-19 meldde Socket 639 gecompromitteerde pakketversies in 323 unieke pakketten in een Mini Shai-Hulud-golf die zich concentreerde rond het @antv-ecosysteem. De getroffen pakketset omvatte pakketten voor grafieken, visualisatie, kaarten en React-wrappers die door engineeringteams worden gebruikt zonder dat die dependencies ooit als security-kritisch worden beschouwd.

Het patroon is het echte probleem. npm is nuttig omdat het publicatie, scanning en takedown centraliseert. Diezelfde centralisatie wordt gevaarlijk wanneer lifecycle scripts, trusted publishing en maintainercredentials worden misbruikt om pakketten in een distributienetwerk te veranderen.

Weinig tijd? Bekijk cside's in-browser Magecart- en skimmerblokkering. Dit dekt alles hieronder in één deployment.

Wat er gebeurde in de AntV-golf

De AntV-golf gebruikte een bekend npm-ingangspunt: uitvoering tijdens installatie. Socket's analyse beschrijft een root-level index.js-payload die package.json aanpaste zodat de payload tijdens preinstall draaide.

Dat is belangrijk omdat npm install, pnpm install en yarn install geen passieve downloadstappen zijn. Lifecycle scripts van pakketten kunnen code uitvoeren voordat een ontwikkelaar de pakketinhoud bekijkt of de applicatie start.

De payload was zwaar geobfusceerd. Socket meldde dat die runtime string decoding gebruikte, versleutelde exfiltratie, gebruik van de GitHub API, gebruik van de npm registry API en een hardcoded HTTPS-exfiltratiepad. Het doel was credentials verzamelen waarmee de malware opnieuw kon publiceren, niet alleen eenmalig uitvoeren.

Hoe Mini Shai-Hulud het sneeuwbaleffect creëert

De payload richt zich op ontwikkel- en CI/CD-omgevingen omdat die omgevingen publicatierechten bevatten. Een browserapplicatie heeft misschien alleen een grafiekpakket nodig, maar de machine of workflow die het installeert kan ook toegang hebben tot npm, GitHub, AWS, Kubernetes, Vault, SSH, Docker of databasecredentials.

De credentialdoelen zijn onder meer:

  • GitHub-tokens en GitHub Actions OIDC-materiaal
  • npm-publicatietokens
  • AWS-credentials en instance metadata
  • Kubernetes service account-bestanden
  • HashiCorp Vault-tokens
  • Docker-authenticatiebestanden
  • SSH-sleutels en private keys
  • Database connection strings

Zodra de malware bruikbare npm-credentials vindt, kan die pakketten opsommen die het slachtoffer mag onderhouden, package tarballs aanpassen, een installatiehook toevoegen, versies ophogen en gecompromitteerde pakketten opnieuw publiceren onder een vertrouwde maintaineridentiteit.

Diagram dat toont hoe Mini Shai-Hulud zich verspreidt via gecompromitteerde npm-credentials en opnieuw gepubliceerde pakketten

Waarom Axios en TanStack ertoe doen

De AntV-golf stond niet op zichzelf. Het npm-ecosysteem heeft een reeks incidenten gezien waarbij aanvallers misbruik maken van vertrouwde maintainers, transitieve dependencies en CI/CD-automatisering.

Datadog's Axios-analyse beschrijft hoe een aanvaller op 2026-03-31 een Axios-maintaineraccount kaapte en kwaadaardige axios-releases publiceerde die de getrojaniseerde dependency plain-crypto-js toevoegden. Die dependency downloadde en startte tijdens installatie een cross-platform remote access trojan.

Diagram dat de Axios npm-compromisketen toont via een getrojaniseerde dependency

Endor Labs' TanStack-analyse laat een andere les zien. TanStack gebruikte npm OIDC trusted publishing, wat langlevende statische npm-tokens overbodig maakt. De aanvaller kreeg alsnog een geldig publicatiepad via repository- en workflowmechanica. Het resultaat was kwaadaardige versies verspreid over de TanStack-namespace met ogenschijnlijk geldige provenance.

Geen enkele kapotte tool op zichzelf verklaart het patroon. De rode draad is de hoeveelheid autoriteit die geconcentreerd zit in ontwikkelomgevingen en releaseworkflows.

npm is tegelijk verdedigingstool en aanvalspad

npm geeft verdedigers een centrale plek om pakketten te inspecteren, malware te markeren, releases te deprecaten en tokens in te trekken. Dat centrale model is beter dan ondoorzichtige losse downloads.

Maar npm geeft aanvallers ook een centrale distributielaag. Als een vertrouwd pakket een kwaadaardige versie uitlevert, kunnen downstream gebruikers die ophalen via gewone installaties, lockfile-updates, CI-rebuilds of transitieve dependency-resolutie.

npm-functieDefensieve waardeWaarde voor de aanvaller
Centraal registerMaakt scanning, advisories en takedown mogelijkGeeft kwaadaardige versies brede distributie
Lifecycle scriptsOndersteunen package setup en native buildsVoeren aanvallercode uit tijdens installatie
MaintaineraccountsMaken snel publiceren mogelijkVeranderen één gecompromitteerde identiteit in veel vergiftigde pakketten
Trusted publishingVermindert blootstelling van langlevende tokensKan worden misbruikt als de workflow of vertrouwensgrens is gecompromitteerd

De les is om het automatische vertrouwen op elke plek waar code wordt uitgevoerd te verminderen, niet om npm te verlaten.

Wat teams nu moeten doen

Begin bij de build- en ontwikkelomgeving. Elke machine of CI-runner die een getroffen pakket installeerde, moet als blootgesteld worden behandeld totdat credentials zijn beoordeeld.

  1. Controleer lockfiles en package manager-logs op getroffen versies die op of na 2026-05-19 zijn geïnstalleerd
  2. Roteer npm-, GitHub-, cloud-, Vault-, SSH-, Docker- en databasecredentials die toegankelijk waren voor die systemen
  3. Audit maintainerpakketten op onverwachte versies, installatiehooks of toegevoegde git-dependencies
  4. Gebruik strikte lockfile-installaties zoals npm ci, pnpm install --frozen-lockfile of yarn install --frozen-lockfile
  5. Schakel lifecycle scripts uit waar dat praktisch kan met --ignore-scripts, vooral in CI-jobs die geen native builds nodig hebben
  6. Voeg dependency cooldowns of review gates toe zodat nieuw gepubliceerde pakketversies niet automatisch productie binnenkomen
  7. Monitor uitgaand verkeer vanuit CI en ontwikkelwerkstations op verdachte exfiltratiepaden

Deze controles verkleinen de kans dat één kwaadaardig pakket uitgroeit tot een publicatie-incident in elk pakket dat een ontwikkelaar onderhoudt.

Waar cside past

cside is geen npm registry-scanner en vervangt CI/CD-hardening niet. Je hebt nog steeds dependency scanning, lockfiles, tokenhygiëne en strikte releasecontroles nodig.

cside dekt het browser-runtime deel van de supply chain. Veel productiesites laden third-party scripts, SDKs, tag manager-payloads, analytics-pakketten en dynamisch geleverde code die zich nooit gedraagt als een vaste npm-dependency. Een pakket of leverancier kan tijdens de build legitiem lijken en later toch risicovol gedrag aan de browser leveren.

cside monitort scriptgedrag terwijl het in de browser van de gebruiker draait. Dat omvat scriptwijzigingen, onverwachte datatoegang, verdachte exfiltratiepogingen en browser-side activiteit die dependency-scanners niet meer kunnen zien zodra de code al in productie staat.

De juiste verdediging is gelaagd: beveilig het registrypad, harden CI, roteer secrets snel en monitor runtime-gedrag waar gebruikers de code daadwerkelijk uitvoeren.

Verder lezen op cside

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks, web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

Mini Shai-Hulud is een supply-chain-malwarepatroon dat misbruik maakt van vertrouwde publicatiepaden, installatiescripts en gestolen ontwikkelaarscredentials om meer pakketten te infecteren.

Socket meldde op 2026-05-19 639 gecompromitteerde pakketversies in 323 unieke pakketten, vooral in het AntV-ecosysteem. Die schaal is belangrijk omdat downstream teams kwaadaardige versies automatisch kunnen binnenhalen via normale dependency-updates.

Nee. cside vult dependency-scanners en CI-controls aan door scriptgedrag tijdens browser-runtime, scriptwijzigingen en data-exfiltratiepaden te monitoren die build-time tools niet zien.

Monitor en beveilig je third-party scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside-dashboardinterface met scriptmonitoring en beveiligingsanalyses
Related Articles
Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip