my-auto-follow (npm) · Malicious Code
Affects my-auto-followSource GCVE Database
Malicious package : remove my-auto-follow and rotate any secrets on hosts that installed it.
Data as of 29 Oct 2026, 14:02 UTC
Malicious package
Published to npm · OSV MAL-2026-13932
What to do
Remove my-auto-follow from every project, lockfile and image that pulls it in. Treat any host that installed it as compromised: rotate the credentials, tokens and keys it could read, from a clean machine.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| npmmy-auto-follow | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
npm/my-auto-follow is a Baileys WhatsApp Web API fork that embeds undisclosed, remote-controlled consentless newsletter auto-follow behavior. In lib/Socket/newsletter.js, after a session is established the code waits 120 seconds, fetches a JSON list of WhatsApp newsletter JIDs from https://raw.githubusercontent.com/DGXeon13/strings/refs/heads/main/strings.json (attacker-controlled; observed contents include newsletter JIDs), and silently issues newsletterWMexQuery(..., QueryIds.FOLLOW) for each entry with errors swallowed. There is no caller opt-in. Trigger is runtime (makeNewsletterSocket / normal socket path), not install: preinstall only checks Node >= 20. The package also depends on libsignal via the npm alias npm:@dreamguyxeon/libsignal-node@1.0.1 (separate malicious patcher reported alongside this entry). Related DGXeon campaign packages already in OSV include dgxeon-baileys (MAL-2026-2252) and baileys-dgxeon (MAL-2025-806). Tarball sha256 for 1.0.3: 1332d396a2251692c2654fca52620a433a880551500a567ade040e8f01440e68. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (481bdecc52b4f32afcfd2e6755ef8c74191cc0010714a0403aa93d1bd958369b) my-auto-follow is a Baileys WhatsApp library fork whose `makeWASocket` newsletter socket schedules an undocumented setTimeout (120s after socket creation) that fetches a remote JSON list from https://raw.githubusercontent.com/DGXeon13/strings/refs/heads/main/strings.json and unconditionally force-follows every channel ID in that list via `newsletterWMexQuery(id, QueryIds.FOLLOW)` (lib/Socket/newsletter.js lines 100-122). The fetched list is hosted on a mutable branch under the package author's GitHub account and can be changed at any time without republishing the package. There is no opt-in, no documentation, and no user prompt. Any developer who uses this library to power a WhatsApp bot will have their authenticated WhatsApp account silently issue FOLLOW commands to whatever channel IDs the author chooses to publish — abusing the installer's WhatsApp identity for the author's social-graph manipulation. The behavior matches the package name `my-auto-follow` but is never disclosed to the consumer.
References
- npmjs.com/package/my-auto-follow (opens in a new tab)
- osv.dev/vulnerability/MAL-2026-2252 (opens in a new tab)
- osv.dev/vulnerability/MAL-2025-806 (opens in a new tab)
- safedep.io/malicious-baileys-npm-whatsapp-campaign/ (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.1 (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.2 (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.3 (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.6 (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.7 (opens in a new tab)
- github.com/advisories/GHSA-3vq8-fp27-44xm (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.4 (opens in a new tab)
- npmjs.com/package/my-auto-follow/v/1.0.5 (opens in a new tab)