490K downloads, quiet follower inflation, and a mysterious Dan from Indonesia. OX Research is tracking a malicious npm campaign making spam accounts look legitimate. The attackers use Baileys to silently make developers follow spam channels on WhatsApp.
Overview
The OX Research team identified 101 npm packages as part of a malicious WhatsApp group subscriber campaign. The malicious packages abuse the “Baileys” WhatsApp open source project to add the victims to groups without their consent. 16 of those packages were removed from npm as of September 28, 2026.
Earlier reports of Baileys WhatsApp campaign were made by SafeDep, OSV and Xygeni back in August and September 2026. Baileys is an open source project containing an unofficial implementation of the WhatsApp API used by developers to automate actions through their WhatsApp accounts – such as customer support bots, chat managers or data scraping.
During our analysis, we found that one of the WhatsApp channels originated in Indonesia, and are advertising selling TikTok accounts and “Mobile Legends: Bang Bang” accounts.
Our analysis also shows that the campaign is continuously growing. Most packages in this report were first published in August and September 2026, new ones are still appearing, and most are still live on npm. Together they have about 490,000 downloads, 116,000 of them in the last 30 days.
Recommended Actions
OX Customers
Protection is provided through malicious dependency vetting – more details at the end of this report.
General recommedations
- If you were added to one of those scam WhatsApp groups, report the group and block it.
- Do not engage with any of those users, even if buying a TikTok account with 7K followers seems like a bargain, these sellers can take your money and disappear.
- Add detection rules for blocking the malicious npm Baileys packages
- Do not use any package that asks you to connect your private accounts (such as WhatsApp)
- Add the remote channel-list URLs, channel JIDs and invite codes from the IOCs to threat-intelligence and URL-reputation pipelines.
Technical Analysis
Variants
Our analysis focuses on three main variants of the same WhatsApp group subscription malware, each with their own design choices, getting the list of WhatsApp groups to subscribe to remotely or locally, and their different ways of handling the subscription logic.
The packages share one basic payload – but differ in where the channel list comes from and how hard they try to hide it.
We grouped them into three variants:
- Scam channels IDs lists fetched remotely from GitHub at runtime
- Scam channels IDs sitting in cleartext inside the code
- Scam channels IDs encoded and obfuscated inside the code
Variant 1 – Fetching Remotely From GitHub (19 packages)
The threat actor hosts the WhatsApp scam group list on GitHub, so these channels could change dynamically without releasing a new npm version each time.
The same package name template appears in `cantarella-baileys`, `levvleys`, `yonzofficial`, `noxleyss` and their scoped twins; only the URL differs.
cantarella-baileys@1.1.13/lib/Socket/newsletter.js :

In @rixxcodex/baileys@9.0.0/lib/Utils/messages-media.js the URL is base64-encoded and hidden in media-download code:

The string decodes to `skyzopedia/Screaper/refs/heads/main/idChannel.json`, which lists 23 live channels.
Variant 2 – Hardcoded In Cleartext (60 packages)
In this variant, the IDs for the channels are hardcoded in cleartext inside the malware’s code
For example from jexkcode@1.1.2/lib/Utils/auto-follow.js :

Two packages added the code inside a bulk of code where most code reviewers could potentially miss:
@kanaraa/baileys@3.5.2/lib/Socket/messages-recv.js adds follow and mute to upstream’s own connection handler

@lekzo/baileys@0.0.8/lib/Signal/Group/Protocols.js puts a copy of the newsletter module inside a Signal-protocol file name.

Variant 3 – Hardcoded And Obfuscated (14 packages)
In this variant, most WhatsApp channel IDs are hardcoded and encoded using Base64 inside the code.
For example – spencer-baileys@1.0.4/lib/Socket/newsletter.js base64-encodes a JSON list of invite codes, resolves each to a channel, then follows it after 90 seconds.

One additional package, neuralwhatsapp, resolves its target from a hardcoded WhatsApp invite code (0029VbBv6cUInlqLc5H0Kw0K) at runtime instead of storing a channel ID directly — the invite resolves to a channel named “Neural” with 798 followers. Seven other packages in this report (@web2apk/baileys, dilxztech, kiki-baileys, saturn-bail, anuaja, noxxleys, kasabaileys) were removed from npm before their code could be reviewed, so which variant they used is unknown.
Threat Intel Analysis
Inside the spam groups
During our analysis, we found that one of the groups is Indonesian based, and tends to sell accounts for mobile games and applications.
Selling a TikTok account with 7K followers:

Selling accounts for the “Mobile Legends: Bang Bang” game:

The phone number in these messages is linked to an Indonesian business WhatsApp account named “Dan”


Another group we found called “Neural”, with 798 followers – posts a game-currency “RSS SALES” announcement promising a “refund” for incomplete orders and telling buyers to contact an admin directly. “JualanRSS” (Indonesian for “selling RSS/resources”) signs the post – the same resource/account-selling pattern as the rest of this campaign, this time for a different mobile game:

Another group – “MONTE – BMG”, with 1K followers posts what looks like a screenshotted Arabic-language sales negotiation that ends in a group invitation and a further WhatsApp channel link.
This is the funnel in action: the inflated follower count is the bait, the actual deal moves to a private group:

That channel link resolves to a small, brand-new channel (stylized name “ISAGI”, 12 followers) whose own description contains a direct chat.whatsapp.com group-invite link – a possible next hop in the same funnel.
Analyzing The Bulk Of Channels
The channels we could identify are mostly small bot-seller and “market” channels, largely Indonesian, where follower counts serve as social proof for selling bot scripts, bot-building services, “premium” APKs and social-media boosting. Three are confirmed auto-follow targets; the rest are channels the package authors promote in their READMEs or code, and so most likely the same people who receive the hijacked followers.
| Avatar | Channel (preview name) | Followers | What it shows | Where it appears |
| Savage Tech (0029VbCuEBJEAKWOWVH3G21e) | 114 | “SAVAGE TECH NETWORK” banner linking a GitHub repo | Auto-follow target in spencer-baileys (base64 JSON) | |
| I LOVE YOU (0029VbBYFdCE50Uoh5O7Jy2j) | 2.4K | Love and relationship quotes, with a “join our tech…” link; a generic lifestyle channel used to collect followers | Auto-follow target (ch1) and README in cortana-md-engine | |
| CORTANA TECH (0029VbC173IDDmFVlhcSOZ0Q) | 1.3K | “Official Cortana link”, points to thecortana.tech | Auto-follow target (ch2) in cortana-md-engine | |
| Fyxzpedia.ID – Utama (0029VbBouHp0rGiGXagM0f2e) | 4.8K | Sells WhatsApp and Telegram bot scripts, bot-building and fix-a-feature services | postinstall banner of @fyxzpediaa/baileys | |
| Nyzz Market Official I-V, TESTI, OFFICIAL INFO (8 channels) | 4-15 each | A shop’s storefront, testimonial and info channels | README of @nyzzpediaa/baileys-new, which also auto-follows 8 hardcoded channel IDs (probably the same 8; not verified, since IDs have no public preview) | |
| Wanz Lonely (0029Vb0A6XC3WHTORDf0Pn3V) | 70 | Sells “premium” APKs via a MediaFire download (AUTO_ORDER_APK_PREM.apk) and social-media boosting orders | README of @wanzlonely/bails4u | |
| MR. SUPUN FERNANDO X (0029Vb55cv41nozBTTIw1y07) | 1.5K | Tech, coding and AI-tools promotion | README of @mr-supun-fernando/supunmd-bail | |
| Stylized name, “Redes Oficiales” (0029Vb5Z9SjIXnlvl97EQm2i) | 19K | Spanish-language creator channel linking YouTube @Teiru44 | README of my-auto-follow | |
| NIXCODE (0029VbCV1ck8fewpdNb2TY2k) | 1K | Developer contact and a group invite | Message-template code in zero-baileys | |
| Fgsi Dev (0029VapkSr45q08hPPPVqy26) | 1.1K | Developer “FongsiDev” contacts (Telegram dashmodz) | Message-template code in zero-baileys | |
| FLUX-CORP (0029Vb7Lbw76LwHcPKCkvg2S) | 152 | No description | README of @ostyado/baileys | |
| AboutZaa.Env (0029VbBc5ak3AzNL2pXnJJ1u) | 296 | ASCII art only | README of @mivesensei/baileys | |
| Reviza suami hoshii (0029Vb7xLulDJ6GrrJGtU51t) | 74 | ASCII art only | README of @mivesensei/baileys, @revizahoshii/baileys | |
| INFORMATION BOT ITSUKI (0029Vag9VSI2ZjCocqa2lB1y) | 94 | Bot group invite | Example file of @queenanya/baileys (no auto-follow) | |
| ALANNXD / HOLOW (0029Vb3IiqTL7UVP9A9n0w1x) | 10K | “Official Channel – AlannXD” | README of neuralwhatsapp | |
| NexusBot Official channel (0029VbBK53XBvvslYeZlBe0V) | 6.4K | Official channel of the NexusBot project | README of @nexustechpro/baileys and @dexterid/baileys | |
| System CHANNEL (0029VaqUb9aGk1FxqeKKOd2i) | 1.4K | Stylized name; the description is decorative text | README of @systemzero/baileys | |
| noxleyss info X share code (0029VbD8x4q1dAw0XWN7wF0L) | 766 | “noxXza Info & baileys updates” | README of noxleyss | |
| About Fhkryy / Information Kaelpedia & DropByte (0029Vb6PTBx4IBhI4YkAsQ0p) | 462 | “Welcome To My Whatsapp Channel” | Code (lib/index.js) of @fhkryxv/baileys | |
| SaaOfc’s (0029VbBJKfE0gcfCAJZEVh3R) | 290 | No real description (“hii”) | README of @saazkira/baileys | |
| INFORMATION YUDZ DEV (0029VbA78K82f3EGd78yGU28) | 197 | “YUDZXML OFFICIAL” | README of @yudzxml/baileys | |
| SAURUS INFORMATION (0029Vb8g2ZyH5JLykgHzVu2g) | 121 | Name says “information about APKs/web” (Indonesian) | Code (lib/index.js) of saurustheking and sauruskyah-baileys | |
| Stylized “bot-jenne” (0029VazMIDf5a24D7Tjiaw04) | 94 | Stylized name; the description is decorative text | README of @felixneo/baileys | |
| @ramadanny / github.com/ramadanny (0029Vb7JPWCAInPfKWC14s2V) | 51 | “Official channel ramadanny” | README of noxleyss and @maulenv/baileys | |
| Astra Digital Information (0029VbCsoB0H5JLxG7J1CU31) | n/a | Information channel; the preview shows no description | README of @astracode/byles-new |
Shared Infrastructure
Many packages in this campaign are not independent. The same channel IDs, the same remote channel lists, and the same GitHub accounts appear across packages with different names and publishers. A shared channel means a shared beneficiary: whoever owns the channel collects followers from every package that targets it, whoever published the package.
- 32 channels are followed by more than one package.
- The most reused channel is 120363400911374213@newsletter. It is followed by 10 packages: @fazzcodestudio/wa-web, @japofc/baileys, @vanzxy/baileys, cloud-baileys, itsmeeaizat-bailey, luoxy-baileys, mikuhostt-baileys, oktz-baileys, ourin-baileys and rafael-bails.
- The channel 120363427430697245@newsletter is followed by 8 packages: @bellaxchuu/flowblue, @bellaxchuu/privatebails, @bellaxchuu/teambails, @ikyyjee/ikyysinggle, @ikyyjee/ikyysingle, @wanzlonely/bails4u, @xayz/baileys and my-baileys.
- The channel 120363400362472743@newsletter is followed by 5 packages: @badzz88/baileys, @bellaxchuu/xtrxbails, @sakataoffc/baileys, kurobails and noverojs.
- One remote list feeds five packages. The list is skyzopedia/NewsletterID/VIP_Push.json. It is fetched by @fyxzpediaa/baileys, @modss/baileys, @rixxcodex/baileys, @sanzoffc/baileys and kiyoramarkets.
- Other remote lists are shared within package families.
- The list LevviCodeID/Levi4than/levvleys.json is used by levvleys, @levvicode/baileys and @ikanngeming/ikannbail.
- The list noxXza/data/noxleys.json is used by noxleyss, @noxleyss/baileys and baileys-xbats.
- The list iyedahruss/all-public-db/newsletter.json is used by saurustheking, sauruskyah-baileys and luoxy-baileys.
- Operators publish the same code under near-identical names. Removing one name does not remove the payload.
- Examples are noxleyss and @noxleyss/baileys, @nyzzpedia/baileys-new and @nyzzpediaa/baileys-new, and @ikyyjee/ikyysingle and @ikyyjee/ikyysinggle.
- A GitHub account links two packages that share no name.
- The package lilys-baileys declares github.com/FallEzz/baileys-corp as its repository.
- The same account hosts news.json, the channel list that cantarella-baileys fetches at runtime.
- Both channels that lilys-baileys follows are on that list.
Affected Packages
| Package | Published (UTC) | Family | Status | Downloads |
|---|---|---|---|---|
| ourin-baileys | 2026-04-11 11:08 | WhatsApp Subscriber | Live | 130589 |
| @nexustechpro/baileys | 2026-01-09 19:14 | WhatsApp Subscriber | Live | 62155 |
| @badzz88/baileys | 2026-01-07 07:49 | WhatsApp Subscriber | Live | 52173 |
| @ostyado/baileys | 2025-12-05 12:02 | WhatsApp Subscriber | Live | 48942 |
| levvleys | 2026-06-10 22:29 | WhatsApp Subscriber | Live | 37007 |
| @vanzxy/baileys | 2026-06-08 11:05 | WhatsApp Subscriber | Live | 15533 |
| @yudzxml/baileys | 2026-05-10 17:37 | WhatsApp Subscriber | Live | 13716 |
| @chatunity/baileys | 2025-12-03 16:22 | WhatsApp Subscriber | Live | 11536 |
| @kelvdra/baileys | 2025-12-27 07:14 | WhatsApp Subscriber | Live | 8333 |
| neuralwhatsapp | 2026-02-24 13:41 | WhatsApp Subscriber | Live | 5475 |
| lilys-baileys | 2025-12-03 10:40 | WhatsApp Subscriber | Live | 6174 |
| @fyxzpediaa/baileys | 2026-08-22 01:21 | WhatsApp Subscriber | Live | 5615 |
| noxleyss | 2026-08-14 10:46 | WhatsApp Subscriber | Live | 4919 |
| @xrelly-stack/bails | 2026-06-26 17:29 | WhatsApp Subscriber | Live | 4717 |
| alipclutch-baileys | 2025-10-20 04:57 | WhatsApp Subscriber | Live | 4473 |
| kurobails | 2026-05-23 14:02 | WhatsApp Subscriber | Live | 4380 |
| eliteprotech-baileys | 2026-02-05 12:12 | WhatsApp Subscriber | Live | 4032 |
| @xayz/baileys | 2026-08-16 07:15 | WhatsApp Subscriber | Live | 3948 |
| chromestaff-baileys | 2026-05-21 15:20 | WhatsApp Subscriber | Live | 3239 |
| @sanzoffc/baileys | 2026-03-12 22:42 | WhatsApp Subscriber | Live | 3184 |
| @sairidev/baileys-new | 2026-05-31 10:30 | WhatsApp Subscriber | Live | 2827 |
| cloud-baileys | 2026-08-11 11:02 | WhatsApp Subscriber | Live | 2642 |
| @nyzzpediaa/baileys-new | 2026-09-05 06:20 | WhatsApp Subscriber | Live | 2599 |
| ishumdz-bail | 2026-09-25 08:05 | WhatsApp Subscriber | Live | 2502 |
| nishiki-bail | 2026-08-18 09:37 | WhatsApp Subscriber | Live | 2453 |
| diezyclutch-baileys | 2026-08-06 20:36 | WhatsApp Subscriber | Live | 2297 |
| oktz-baileys | 2026-08-30 09:38 | WhatsApp Subscriber | Live | 2269 |
| my-auto-follow | 2026-03-28 15:12 | WhatsApp Subscriber | Live | 2240 |
| @kanaraa/baileys | 2026-08-13 05:50 | WhatsApp Subscriber | Live | 1866 |
| @fer2809fl/baileys | 2026-03-09 21:53 | WhatsApp Subscriber | Live | 1829 |
| jexkcode | 2026-09-13 15:57 | WhatsApp Subscriber | Live | 1835 |
| rafael-bails | 2026-07-16 05:58 | WhatsApp Subscriber | Live | 1655 |
| @ikanngeming/ikannbail | 2026-09-05 09:06 | WhatsApp Subscriber | Live | 1548 |
| zero-baileys | 2026-07-12 12:18 | WhatsApp Subscriber | Live | 1495 |
| @zeronexcode/baileys | 2026-09-19 21:42 | WhatsApp Subscriber | Live | 1450 |
| @sakataoffc/baileys | 2026-08-23 09:53 | WhatsApp Subscriber | Live | 1374 |
| @astracode/byles-new | 2026-09-12 13:43 | WhatsApp Subscriber | Live | 1286 |
| @saazkira/baileys | 2026-05-30 12:05 | WhatsApp Subscriber | Live | 1181 |
| @lekzo/baileys | 2026-09-15 07:24 | WhatsApp Subscriber | Live | 1177 |
| @revizahoshii/baileys | 2026-09-06 08:23 | WhatsApp Subscriber | Live | 1162 |
| my-baileys | 2026-09-08 22:04 | WhatsApp Subscriber | Live | 1001 |
| noverojava | 2026-09-03 15:43 | WhatsApp Subscriber | Live | 889 |
| sauruskyah-baileys | 2026-09-13 15:19 | WhatsApp Subscriber | Live | 836 |
| @modss/baileys | 2026-09-01 23:54 | WhatsApp Subscriber | Live | 813 |
| @fhkryxv/baileys | 2026-08-19 01:39 | WhatsApp Subscriber | Live | 802 |
| @japofc/baileys | 2026-09-11 07:47 | WhatsApp Subscriber | Live | 796 |
| @lendxntaa/baileys | 2026-09-25 16:50 | WhatsApp Subscriber | Live | 725 |
| baileys-xbats | 2026-09-19 11:30 | WhatsApp Subscriber | Live | 679 |
| kiyoramarkets | 2026-08-19 18:48 | WhatsApp Subscriber | Live | 612 |
| @levvicode/baileys | 2026-09-11 02:26 | WhatsApp Subscriber | Live | 592 |
| luoxy-baileys | 2026-09-13 02:29 | WhatsApp Subscriber | Live | 545 |
| @mikudeveloper/grace | 2026-09-19 04:09 | WhatsApp Subscriber | Live | 535 |
| cortana-md-engine | 2026-09-10 18:08 | WhatsApp Subscriber | Live | 531 |
| @bellaxchuu/flowblue | 2026-09-05 20:12 | WhatsApp Subscriber | Live | 476 |
| @wanzlonely/bails4u | 2026-08-07 14:57 | WhatsApp Subscriber | Live | 460 |
| mikuhostt-baileys | 2026-09-18 19:41 | WhatsApp Subscriber | Live | 443 |
| cantarella-baileys | 2026-09-21 07:23 | WhatsApp Subscriber | Live | 436 |
| saurustheking | 2026-09-19 05:16 | WhatsApp Subscriber | Live | 419 |
| @mivesensei/baileys | 2026-09-09 23:50 | WhatsApp Subscriber | Live | 364 |
| @revizahoshii/hoshino | 2026-09-21 03:52 | WhatsApp Subscriber | Live | 354 |
| @noxleyss/baileys | 2026-09-18 11:13 | WhatsApp Subscriber | Live | 341 |
| @fhkryxv/baileys-new | 2026-09-04 04:38 | WhatsApp Subscriber | Live | 325 |
| @fazzcodestudio/wa-web | 2026-09-10 23:09 | WhatsApp Subscriber | Live | 308 |
| @ikyyjee/ikyysingle | 2026-09-05 20:55 | WhatsApp Subscriber | Live | 267 |
| focashi | 2026-08-29 09:39 | WhatsApp Subscriber | Live | 250 |
| @zanta/baileys | 2026-09-17 17:41 | WhatsApp Subscriber | Live | 247 |
| shadowmd | 2026-08-27 10:10 | WhatsApp Subscriber | Live | 245 |
| @ikyyjee/ikyysinggle | 2026-09-05 20:47 | WhatsApp Subscriber | Live | 237 |
| itsmeeaizat-bailey | 2026-09-09 14:59 | WhatsApp Subscriber | Live | 212 |
| @bellaxchuu/privatebails | 2026-09-03 19:28 | WhatsApp Subscriber | Live | 173 |
| arsya-baileys | 2026-09-25 15:41 | WhatsApp Subscriber | Live | 136 |
| xzvexpzcbailey | 2026-09-15 00:28 | WhatsApp Subscriber | Live | 59 |
| @mr-supun-fernando/supunmd-bail | 2026-09-22 04:26 | WhatsApp Subscriber | Live | 0 |
| yonzofficial | 2026-09-22 12:12 | WhatsApp Subscriber | Live | 0 |
| fixo-baileys | 2026-09-22 19:18 | WhatsApp Subscriber | Live | 0 |
| @jojoxyz/condemnedforce-baileys | 2026-09-23 01:42 | WhatsApp Subscriber | Live | 0 |
| @rixxcodex/baileys | 2026-09-23 21:13 | WhatsApp Subscriber | Live | 0 |
| @lendkzn/xntaabail | 2026-09-24 01:42 | WhatsApp Subscriber | Live | 0 |
| spencer-baileys | 2026-09-24 06:21 | WhatsApp Subscriber | Live | 0 |
| @wenzyx1/bails | 2026-09-24 08:51 | WhatsApp Subscriber | Live | 0 |
| yonzoffic-baileys | 2026-09-26 06:59 | WhatsApp Subscriber | Live | 0 |
| @xatancchii/velycxbail | 2026-09-27 00:45 | WhatsApp Subscriber | Live | 0 |
| @kxa/xbails | 2026-09-27 09:40 | WhatsApp Subscriber | Live | 0 |
| monte-md-baileys | 2026-09-27 12:43 | WhatsApp Subscriber | Live | 0 |
| albert-anitabaileys | 2026-09-27 13:07 | WhatsApp Subscriber | Live | 0 |
| @web2apk/baileys | 2026-09-08 06:29 | WhatsApp Subscriber | Taken down | 2988 |
| dilxztech | 2026-09-14 14:03 | WhatsApp Subscriber | Taken down | 2068 |
| kiki-baileys | 2026-09-07 14:31 | WhatsApp Subscriber | Taken down | 886 |
| anuaja | 2026-08-26 02:30 | WhatsApp Subscriber | Taken down | 741 |
| @bellaxchuu/xtrxbails | 2026-08-31 17:16 | WhatsApp Subscriber | Taken down | 202 |
| noverojs | 2026-09-05 01:46 | WhatsApp Subscriber | Taken down | 131 |
| sea-baileys | 2026-09-20 16:41 | WhatsApp Subscriber | Taken down | 130 |
| focaleys | 2026-08-29 09:33 | WhatsApp Subscriber | Taken down | 82 |
| @bottino/baileys | 2026-08-14 14:17 | WhatsApp Subscriber | Taken down | 26 |
| saturn-baileys | 2026-08-16 05:11 | WhatsApp Subscriber | Taken down | 0 |
| @bellaxchuu/belbails | 2026-09-01 19:04 | WhatsApp Subscriber | Taken down | 0 |
| @bellaxchuu/teambails | 2026-09-03 18:15 | WhatsApp Subscriber | Taken down | 0 |
| @nyzzpedia/baileys-new | 2026-09-05 04:24 | WhatsApp Subscriber | Taken down | 0 |
| noxxleys | 2026-08-13 11:09 | WhatsApp Subscriber | Taken down | 0 |
| saturn-bail | 2026-08-24 12:35 | WhatsApp Subscriber | Taken down | 0 |
| kasabaileys | 2026-09-27 16:32 | WhatsApp Subscriber | Taken down | 0 |
IOCs
Remote channel lists. The operator edits these files to retarget every installed copy without publishing a new npm version. All were live on 2026-09-24.
- https://raw.githubusercontent.com/skyzopedia/Screaper/refs/heads/main/idChannel.json (23 channels; used by @rixxcodex/baileys)
- https://files.gifted.co.ke/file/chJids.json (9 channels; used by spencer-baileys)
- https://raw.githubusercontent.com/LevviCodeID/Levi4than/refs/heads/main/levvleys.json (5 channels; used by levvleys, @levvicode/baileys, @ikanngeming/ikannbail)
- https://raw.githubusercontent.com/FallEzz/baileys-corp/refs/heads/main/news.json (4 channels; used by cantarella-baileys)
- https://raw.githubusercontent.com/iyedahruss/all-public-db/refs/heads/main/newsletter.json (4 channels; used by saurustheking, sauruskyah-baileys, luoxy-baileys)
- https://raw.githubusercontent.com/MikuDevReal/V2.0/refs/heads/main/pepek.json (2 channels; used by @mikudeveloper/grace)
- https://raw.githubusercontent.com/budetzz/mazzbudetzzzzz/refs/heads/main/joinchgua.json (2 channels; used by yonzofficial)
- https://raw.github.com/skyzopedia/NewsletterID/refs/heads/main/VIP_Push.json (1 channel; used by @fyxzpediaa/baileys, @modss/baileys, @rixxcodex/baileys, @sanzoffc/baileys, kiyoramarkets)
- https://raw.githubusercontent.com/DGXeon13/strings/refs/heads/main/strings.json (1 channel; used by my-auto-follow)
- https://raw.githubusercontent.com/noxXza/data/refs/heads/main/noxleys.json (1 channel; used by noxleyss, @noxleyss/baileys, baileys-xbats)
- https://raw.githubusercontent.com/Dayyy-19/Anu/main/Newsletter.json (empty placeholder today; used by @modss/baileys)
Conclusions
While this malicious campaign isn’t directly aimed at stealing data or crypto currency, it exposes unaware victims to scam and illegal trade. Since the threat actors are muting these channels on the victim’s devices, it serves as social proof for those channels – by having an inflated follower count.
This campaign shows another way threat actors abuse the npm registry, our previous report on ClickFix Phishing Pages Discovered in 24 npm Packages showed how threat actors use the platform to spread HTML pages with malicious redirects, which can be rendered on mirror websites such as unpkg.com, now we see another point of view where the platform is used to spread illegal selling content and WhatsApp groups member count inflation.
Due to classic malicious code signatures being absent from this campaign, such as stealing API tokens and heavy obfuscation, these scam campaigns could easily slip under the radar in threat detection tools and inside large organizations, making them less prone to removal and leaving them online for much longer than the average malware.
References
- SafeDep, “Baileys npm forks farm WhatsApp Channel followers” (2026-08-10), earlier reporting on the same campaign
- Xygeni, “Malicious npm Package in Baileys Fork (Skyzopedia Case)” (2026-09-18), analysis of @dappaoffc/baileys-mod.
- OSV malicious-package entries for packages in this report: MAL-2026-12108 (alipclutch-baileys), MAL-2026-13482 (diezyclutch-baileys), MAL-2026-13932 (my-auto-follow), MAL-2026-15918 (@modss/baileys), MAL-2026-16070 (@fyxzpediaa/baileys), MAL-2026-16104 (@nexustechpro/baileys), MAL-2026-16220 (jexkcode), MAL-2026-16276 (@lekzo/baileys), MAL-2026-16280 (zero-baileys), MAL-2026-16281 (@sanzoffc/baileys), MAL-2026-16387 (@mr-supun-fernando/supunmd-bail), MAL-2026-16389 (noverojava), MAL-2026-16473 (sea-baileys), MAL-2026-16483 (@rixxcodex/baileys).
Upstream library these packages fork, @whiskeysockets/baileys
How OX Can Help
All of the above packages and future variants of this malicious campaign are included in the OX security malware database.
OX customers using VibeSec trying to install one of the malicious packages will be blocked by the platform and an alternative safe package will be suggested to them.
OX customers pushing code with the malicious package as dependency will also be blocked by the OX platform pipeline scan.