Direct naar de inhoud
Cybersecurity

Malafide npm-pakketten misbruiken WhatsApp-accounts

malafide npm-pakketten

Cybersecurityonderzoekers hebben een cluster van malafide npm-pakketten blootgelegd die ontwikkelaars via een WhatsApp-campagne in groepen zetten zonder hun toestemming. De aanval maakt gebruik van gemanipuleerde varianten van het open-source WhatsApp-project Baileys om geauthenticeerde WhatsApp-bots aan te sturen.

De pakketten zijn samen al bijna 490.000 keer gedownload, en ongeveer 116.000 downloads vonden plaats in de laatste dertig dagen van de onderzoeksperiode. Daarmee is het niet alleen een theoretisch risico: het gaat om een actieve supply chain dreiging die ontwikkelaars aan de verkeerde kant van een marketing- en abonnementsmechanisme kan trekken.

Wat is PhantomSub en waarom draait dit om npm?

De campagne heet PhantomSub. In plaats van alleen “klassieke” malwarefunctionaliteit te leveren, misbruiken de pakketten de WhatsApp-functionaliteit die ontwikkelaars mogelijk gebruiken voor geautomatiseerde berichten of botbeheer.

Concreet: de onderzoekers stellen dat de pakketten slachtoffers toevoegen aan WhatsApp-groepen of -kanalen als abonnee, terwijl de betrokken gebruiker daar niet mee heeft ingestemd. Dat gebeurt door het misbruik van Baileys-forks: aangepaste npm-implementaties die op installatietijd of tijdens runtime gedrag vertonen dat niet bij de normale bibliotheek hoort.

Belangrijk detail is dat de pakketten werken met de WhatsApp-account die al gekoppeld is—namelijk via een geauthenticeerde sessie die de ontwikkelaar eerder heeft ingericht. Daardoor lijkt het alsof “legitieme” botfunctionaliteit wordt gebruikt, terwijl het doel in feite abonnements- en promotieactiviteiten zijn.

101 pakketten, één tactiek: Baileys misbruiken

Volgens OX Security gaat het om 101 malafide npm-pakketten. Een deel van de namen bestaat uit Baileys-varianten onder verschillende scopes en publishers, zoals bijvoorbeeld ourin-baileys, neuralwhatsapp en verschillende scoped packages met baileys in de naam.

De onderliggende aanpak is volgens de analyse niet uniek per pakket. Er zijn sterke signalen van hergebruik: dezelfde componenten, gedeelde kanaal-ID’s, terugkerende GitHub-accounts en zelfs dezelfde externe lijsten duiken op in meerdere packages met verschillende namen.

Dit wijst op een campagne waarbij meerdere pakketten worden “geplaatst” om detectie te omzeilen en om zoveel mogelijk ontwikkelaars te bereiken. In hun woorden: een kanaal betekent een gedeelde begunstigde—wie het kanaal beheert, profiteert van volgers die via verschillende packages worden verzameld.

Hoe de malware werkt: drie varianten van het abonnementsroutine

De onderzoekers onderscheiden drie varianten van de malwarelogica, elk met een andere manier om kanaal-ID’s te verwerken. Dat is relevant omdat het bepaalt hoe “herkenbaar” code kan zijn tijdens reviews en scans.

Variant 1: kanaal-ID’s ophalen tijdens runtime

Bij deze variant (aangegeven als 19 pakketten) worden kanaal-ID’s opgehaald bij het uitvoeren van de code. Dat gebeurt via verwijzingen naar GitHub. Hierdoor kan het gedrag dynamisch veranderen en is statische inspectie lastiger.

Variant 2: kanaal-ID’s direct in de broncode

Deze variant (aangeduid als 60 pakketten) bevat kanaal-ID’s in platte tekst in de broncode. Voor defensieve teams is dat vaak eenvoudiger om te detecteren, omdat het dezelfde strings kan tonen in meerdere samples.

Variant 3: kanaal-ID’s in versleutelde of obfuscated vorm

Ten slotte (bij 14 pakketten) worden kanaal-ID’s opgenomen in een gecodeerde of verdoezelde vorm. Daarmee proberen auteurs de normale leesbaarheid te verminderen en automatische checks te omzeilen.

Ondanks die verschillen lijkt het einddoel hetzelfde: de geauthenticeerde WhatsApp-bot wordt gebruikt om zich te abonneren op kanaaladvertenties en daarmee volgers te genereren voor de beheerders van die kanalen.

Wat zien we aan de WhatsApp-campagnes?

Een van de geïdentificeerde WhatsApp-groepen wordt gelinkt aan Indonesië en promoot rekeningen en “accounts” voor mobiele games en applicaties. Namen die in de context genoemd worden zijn onder andere Mobile Legends: Bang Bang en TikTok.

De onderzoekers merken ook op dat de posts een telefoonnummer bevatten dat hoort bij een WhatsApp-bedrijfsaccount (“Dan”), waarmee de advertentie- en abonnementsconstructie verder wordt ondersteund.

Naast die groep rapporteren ze ook andere kanalen, veelal met kleine aantallen volgers. Die aantallen werken als social proof voor verkoop: bot-seller “market channels” waar scripts, bot-builderservices, premium APK’s en social-media boosting worden aangeboden.

Waarom dit extra riskant is voor ontwikkelaars

Veel ontwikkelaars richten WhatsApp-bots in via open-source bibliotheken en verbinden die vervolgens met een geauthenticeerde sessie. Als een pakket eenmaal onderdeel wordt van je dependency tree, kan het gedrag op dat moment meer doen dan de “normale” API-call verwachten.

In dit geval adviseren onderzoekers vooral om op te letten of je eigen WhatsApp-botaccount zonder bedoeling wordt toegevoegd of zich automatisch abonneert op kanalen die je niet hebt goedgekeurd.

Het risico zit dus niet alleen in dat er “iets verdachts draait” op je machine, maar ook in misbruik van je communicatiekanalen. Dat kan leiden tot reputatieschade, privacyproblemen en ongewenste advertentie-impact.

Praktische stappen om schade te beperken

Als je ontwikkelt met npm en je gebruikt (of gebruikte) Baileys, is het verstandig om gericht te handelen. De onderzoekers geven een aantal concrete aanbevelingen die je kunt vertalen naar je eigen werkwijze.

  • Controleer of je WhatsApp-account zonder consent is toegevoegd aan groepen of zich heeft geabonneerd op kanalen.
  • Blokkeer** de verdachte accounts of botactiviteiten zodra je ze herkent.
  • Stel detectieregels in om malafide Baileys-varianten te blokkeren in je omgeving en CI/CD.
  • Vermijd pakketten die vragen om koppeling met je persoonlijke WhatsApp-sessie als je niet zeker bent van de intentie en oorsprong.

Daarnaast helpt het om dependency hygiene serieus te nemen: kijk niet alleen naar wat je installeert, maar ook naar wat er door dependencies heen wordt binnengehaald. Dat verkleint de kans dat je onbewust een gemanipuleerde fork of “publisher variant” in je projecten krijgt.

Supply chain aanpak: voorkom dat je dependency’s te veel mogen

Dit incident past in een breder patroon waarbij aanvallers via package managers en open-source afhankelijkheden extra bevoegdheden misbruiken. Het gevolg: je tooling levert niet alleen software, maar ook een route naar bestaande accounts en communicatiestromen.

Wil je dit strategisch benaderen, dan is het nuttig om te kijken naar eerdere meldingen rond supply chain risico’s en misbruik in npm-ecosystemen. Op ITWaarschuwing vind je bijvoorbeeld een artikel over een kritieke kwetsbaarheid die afhankelijkheden en platforms kan raken: Kiteworks: critical fix na negen uur shutdown. Hoewel het niet over npm en WhatsApp gaat, sluit het inhoudelijk aan bij het belang van snelle fixes en gecontroleerde updates.

Ook relevant is het bredere thema van beveiliging rond geautomatiseerde systemen en identiteiten. Denk daarbij aan maatregelen die voorkomen dat een compromis “doorwerkt” naar accounts die je vertrouwt.

Conclusie

De ontdekking van malafide npm-pakketten rond Baileys laat zien hoe supply chain aanvallen verder kunnen gaan dan “code uitvoeren”: ze kunnen ook WhatsApp-sessies gebruiken om slachtoffers zonder toestemming te binden aan groepen en kanalen.

Door je dependencies te controleren, je WhatsApp-gedrag te monitoren en verdachte packages direct te blokkeren, verlaag je het risico aanzienlijk. Zeker wanneer je werkt met bibliotheken die geauthenticeerde sessies beheren, is het essentieel om te weten welke package je precies installeert—en waarom.

Bron: https://thehackernews.com/2026/09/101-malicious-npm-packages-add.html