Ontwikkelaars opgelet: gecompromitteerde npm- en Python-packages

Cyber alerts
01 april 2026
De afgelopen dagen zijn meerdere supplychain-aanvallen op npm-packages uitgevoerd. Hierbij zijn malafide versies verspreid die toegang tot IT-omgevingen van organisaties geven.

Aanvallen op npm-packages

De afgelopen dagen zijn meerdere supplychain-aanvallen op npm-packages uitgevoerd. npm is een packagemanager voor Node.js, een framework dat gebruikt wordt voor het ontwikkelen van software. Bij deze aanvallen zijn npm- en Python-packages gecompromitteerd. Als je software ontwikkelt en npm of Python-packages van derden gebruikt, is het belangrijk dat je actie onderneemt. Kwaadwillenden krijgen via gecompromitteerde packages namelijk toegang tot ontwikkelomgevingen en IT-omgevingen van organisaties.

Malafide versie van Trivy, CanisterWorm-malware en axios compromittatie

Op 19 maart jl. hebben kwaadwillenden oneigenlijke toegang verkregen tot de ontwikkelomgeving van Trivy, een beveiligingsscanner voor onder andere ontwikkelomgevingen van Node.js-applicaties.[1][2] Hierop is een malafide versie van Trivy verspreid, waarmee toegang wordt verkregen tot gevoelige authenticatiegegevens. Daarnaast zijn er zogeheten 'backdoors' geplaatst waarmee op afstand commando’s op gecompromitteerde systemen uitgevoerd kunnen worden.[3]

Aanvullend wordt via de buitgemaakte authenticatiegegevens CanisterWorm-malware verspreid. Deze malware exfiltreert zelfstandig authenticatiegegevens uit ontwikkelomgevingen en probeert daarna aanvullende npm- en PyPI-packages te compromitteren. Na de aanvankelijke compromittatie van Trivy, zijn volgens beveiligingsbedrijf Aikido ten minste 47 npm-packages op deze manier gecompromitteerd. Het daadwerkelijke aantal ligt waarschijnlijk vele malen hoger. Daarnaast zouden ook versies van de Python-packages LiteLLM en Telnyx via deze werkwijze zijn gecompromitteerd.[4][5]

Los van de aanval op Trivy, kwam op 30 maart jl. naar buiten dat de npm-package axios is gecompromitteerd.[6][7] axios is een populaire library die het voor applicaties mogelijk maakt om via HTTP met andere systemen te communiceren. Ook bij deze supplychain-aanval is malware aan een legitieme package toegevoegd, die vervolgens als update van de package wordt verspreid.

Wat is het risico?

Als jouw organisatie software ontwikkelt waarin een gecompromitteerd npm- of Python-package wordt gebruikt, hebben de kwaadwillenden toegang tot authenticatiegegevens gekregen. Via deze gegevens krijgen de kwaadwillenden toegang tot andere (ontwikkel)omgevingen of systemen op je netwerk. Ook eindgebruikers van je software lopen een reëel risico, bijvoorbeeld doordat backdoors van de kwaadwillenden in je software terecht zijn gekomen.

Het NCSC heeft indicaties dat de verkregen toegang wordt gebruikt voor het exfiltreren van (gevoelige) data. Het is voorstelbaar dat de kwaadwillenden organisaties met deze data afpersen, waarbij ze bijvoorbeeld dreigen om de buitgemaakte data op het internet te publiceren wanneer niet aan een losgeldeis wordt voldaan. Ook is het mogelijk dat buitgemaakte data aan andere cybercriminelen wordt doorverkocht, die de daarin aanwezige credentials vervolgens voor hun eigen vervolgaanvallen misbruiken.

Het compromitteren van externe softwarelibraries, zoals npm- en PyPI-libraries, is een methode die kwaadwillenden vaker inzetten voor het verkrijgen van gevoelige gegevens. In het najaar van 2025 vond bijvoorbeeld een soortgelijke malwarecampagne plaats. Hierbij is een groot aantal npm-packages met Shai-Hulud-malware gecompromitteerd.[6] Het is belangrijk dat organisaties die software ontwikkelen maatregelen treffen om de risico's in ontwikkelomgevingen te beperken en compromittaties te voorkomen.

Wat kun je doen?

Het NCSC adviseert om ten minste de volgende maatregelen te treffen. Aanvullend hebben beveiligingsbedrijven Wiz, Aikido en StepSecurity uitvoerige beschrijvingen van de supplychain-aanvallen gepubliceerd. Op hun websites lees je verschillende andere maatregelen die je kunt treffen om misbruik vast te stellen.

Controleer of jouw ontwikkelomgeving is gecompromitteerd:

  • Controleer je ontwikkelomgeving op aanwezigheid van de volgende packages. Aanwezigheid van deze packages duidt erop dat je omgeving is gecompromitteerd:
    • Trivy versie 0.69.4.
    • axios versies 1.14.1 en 0.30.4.
  • Ook wanneer je niet een van deze packages gebruikt, kan het zijn dat de kwaadwillenden via een ander gecompromitteerd package toegang tot je omgeving hebben verkregen. Controleer je omgeving daarom ook op aanwezigheid van indicators-of-compromise (IOC's). Verschillende beveiligingsbedrijven hebben IOC's gedeeld.[2][3][7][8] Aanwezigheid van deze IOC's in je omgeving duidt op een mogelijke compromittatie.

Onderneem actie als je indicaties hebt dat jouw omgeving is gecompromitteerd:

  • Start je incidentresponsproces (IR-proces) op. Schakel eventueel een gespecialiseerde IR-dienstverlener in om onderzoek te doen naar de omvang en impact van de mogelijke compromittatie.
  • Roteer alle credentials, tokens en andere authenticatiegegevens waar de kwaadwillenden mogelijk toegang tot hebben gehad.
  • Informeer indien nodig je klanten, zodat ook zij gepaste maatregelen kunnen treffen.

Tref maatregelen om dit soort incidenten in de toekomst te voorkomen:

  • Gebruik versiepinning wanneer jouw software externe libraries gebruikt. Pin hashes van externe libraries in plaats van versienummers, indien mogelijk. Hiermee verklein je de kans dat je een gecompromitteerde versie van de externe library downloadt.
  • Pas een dependancy cooldown-periode toe. Voer kritieke beveiligingsupdates snel door, maar wacht enkele dagen met het doorvoeren van reguliere dependency-updates waar mogelijk.
  • Schakel postinstall-scripts uit, bijvoorbeeld door de parameter '--ignore-scripts' van het 'npm ci'-commando te gebruiken.
  • Gebruik scansoftware voor CI/CD-omgevingen om malafide updates en packages te detecteren.
  • Gebruik alleen packages van trusted publishers, en gebruik het 'npm audit'-commando om de authenticiteit van packages te controleren.[9][10]
  • Implementeer npm Trusted Publishing via OpenID Connect (OIDC), in plaats van een vast 'NPM_TOKEN'. Zo zorg je voor veilige authenticatie zonder dat een langlevend publish-token kan worden gestolen of misbruikt.[7]
Formulier
Heeft deze pagina je geholpen?