NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
Malicious package

@bottino/baileysnpm

Advisory published Updated

@bottino/baileys is a confirmed malicious npm package (MAL-2026-17351) that steals credentials and exfiltrates sensitive data (malicious versions 1.0.0, 1.0.1, 1.0.2…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @bottino/baileys (npm)

MAL-2026-17351
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @bottino/baileys

What this malware does

This package is part of a large family (100+ identified as of September 2026) of near-identical forks of the Baileys WhatsApp Web library that inject a covert channel-subscription action into the WhatsApp socket layer. On connect, the injected code issues an authenticated w:mex FOLLOW query (query_id 7871414976211147) against one or more attacker-chosen WhatsApp Channel/Newsletter JIDs, using the installer's own authenticated WhatsApp session -- silently subscribing the victim's account to channels it never asked to join.

The target JID(s) are hidden from casual source review via one of several obfuscation techniques observed across the family: a plain string literal, base64 encoding, base64+XOR, or a char-code array reconstructed at runtime. Some variants instead fetch a mutable, attacker-controlled remote JSON/JS list of target JIDs from GitHub or another host at runtime, letting the target list change after installation without a new npm publish. Every sample in the family shares the same underlying mechanism (a wrapped/patched socket-connect routine that fires the FOLLOW query some seconds after connect), even though the package name, JID value(s), and obfuscation/delivery method differ per fork.

The malicious action abuses the installer's own authenticated WhatsApp session to gain reach and subscribers for attacker-controlled channels; it does not exfiltrate credentials, establish persistence, or execute arbitrary remote code.

Affected package: @bottino/baileys (npm), version(s): 1.0.14, 1.0.13, 1.0.12, 1.0.11, 1.0.10, 1.0.9, 1.0.8, 1.0.7, 1.0.6, 1.0.5, 1.0.2, 1.0.1.

This fork of Baileys overrides requestPairingCode so that when the caller does not supply an explicit pairKey, authState.creds.pairingCode is set to the fixed literal string BYPAKI64. That value is then used as the KDF input for the WhatsApp companion-device link-code encryption via derivePairingCodeKey(authState.creds.pairingCode, salt). Because the pairing code is a known constant baked into the package, anyone who knows the target phone number of the installer's WhatsApp account can complete the companion-device pair flow from a device they control and obtain persistent access to the installer's WhatsApp session (read/send messages, contacts, media) — a full account takeover backdoor against any application built on this library. Additionally, on socket connect the code auto-subscribes the installer's WhatsApp account to a hardcoded newsletter JID 120363418582531215@newsletter and persists a basedbysam flag so the covert subscribe runs once per credential store; this covert action uses the installer's WhatsApp identity without disclosure.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Malicious versions

13 flagged
1.0.01.0.11.0.21.0.51.0.61.0.71.0.81.0.91.0.101.0.111.0.121.0.131.0.14

Indicators of compromise (SHA-256)

571d52cf3274d95d4824667269921b2e0ad1478fe9f324a74fab0ba377bb9a26
86b50651f18a57382f7092003d44fef58dd6dd5028786448ef66de864940d37f
cad4edc85fe2e1370c217c7a9b94b90a3b7be93f97529b2f83aad2ac411d2d32
1d00245044d84b71ccf65beaff2142a1eedd9eb16af51d2d2b4bf977c511139d
48895a51d27fab743e3086d8a580893e6821df1ae96e99c4637a33b3dfd88c1e
4b770a54548578ff51fe4d28be19feddb4723bb2b43bc4d1b0e7bc9cab86150a
8637ef3cfe17a312f256c661cf434c975c6e14a029c13a0fc990f9c9edcafd36
b8873f9f22b17689e074cf4a36128d2ab2abf777240b2f1e9d8f0644a0604743
c59eee3206c6ceb77bfd31ee6d2b82bfa71986502634ffdd728ab0f174c49305
2d6272766dbca2ca3686e2904a127f8f52495f52e6bae1f30125388d48ed8743
359995a0ac54bf55fe41254b1af34cdaf06b648bb854045644ec51210040e18f
7496a060f3c7a6b2a30947d569889d5ad709025e056970e20752caa9df8f64ca
81dc266de5a080d063a1181844241ff9bf737bc2e413b13176b1978ae7d2c2b1
306f5b1457c94a2754719e5f1141bcb8d394fab8f5b5ede809677152d6ca2b1d

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for @bottino/baileys (13 malicious versions).

  2. If you installed it — respond

    @bottino/baileys is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If @bottino/baileys was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. @bottino/baileys on npm has been identified as a malicious package (versions 1.0.0, 1.0.1, 1.0.2, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, and 5 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-020870IN-MAL-2026-020869IN-MAL-2026-020867IN-MAL-2026-021156IN-MAL-2026-021157IN-MAL-2026-021160IN-MAL-2026-021155IN-MAL-2026-021158IN-MAL-2026-021159IN-MAL-2026-021153IN-MAL-2026-021161IN-MAL-2026-021163IN-MAL-2026-021154GHSA-qg7r-f2jp-2mmx

References

Credits

  • Amazon Inspector · finder
  • OX Security · finder

Detect & block this

O3 blocks @bottino/baileys-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

@bottino/baileys (npm) malicious package — MAL-2026-17351 | O3 Security