Malicious code in parxleys (npm)
MAL-2026-17902 · GHSA-rg3c-8x72-6pmc
Published · Modified
Dependency scanning
Check whether parxleys is in your codebase
Corgea flags malicious and compromised dependencies with reachability analysis, so you fix the packages that actually run in your application instead of working through the whole lockfile.
Description
This package is a fork of the Baileys WhatsApp Web library (npm) and belongs to the "PhantomSub" family described by OX Security in September 2026: the publisher injected code that, without the installer asking, uses the installer's own authenticated WhatsApp session to subscribe that account to WhatsApp Channels (newsletters) the publisher chose, by sending the WhatsApp w:mex FOLLOW query (query_id 7871414976211147) for each target channel JID, and then MUTES each channel so the victim is not notified of its posts.
The package carries two independent follow routines, both unconditional and undocumented (the package ships no README):
package/lib/Socket/messages-recv.jslines 45-66 build three values at runtime from char-code arrays through a helperqvnr = a => a.map(v => String.fromCharCode(v)).join(''): the channel JID120363428355171197@newsletter(xkmt) and the socket method namesnewsletterFollow(pzha) andnewsletterMute(wjcf). Lines 1119-1137, in aconnection.updatehandler: 30 seconds after the connection opens, for each JID it callssock[pzha](id)(FOLLOW), waits 3 seconds, callssock[wjcf](id)(MUTE), and swallows every error.package/lib/Socket/newsletter.jslines 86-116:autoJoinChannelsfetcheshttps://raw.githubusercontent.com/noxXza/data/refs/heads/main/noxleys.json30 seconds after the connection opens and, for every@newsletterid it lists, sendsQueryIds.FOLLOW, waits 3 seconds, and sendsQueryIds.MUTE, so the target list can change without a new npm release. On 2026-10-08 the list contained120363428355171197@newsletter,120363428984357510@newsletterand120363425751417260@newsletter.
The char-code block and target JID 120363428355171197 are the same as in ichigo-baileys and wailib (both derived from noxleyss, MAL-2026-17402) and in cantarella-baileys (MAL-2026-17390); the remote list's file name, noxleys.json, points the same way.
Line numbers refer to versions 1.0.0 and 1.0.1, whose two cited files are byte-identical.
Static review of the published tarballs found no code that sends WhatsApp credentials or session keys off-host, no install-time payload (the only install hook is Baileys' stock Node.js version check in engine-requirements.js; prepare and prepack only echo a banner), and no persistence. package/lib/Utils/messages-media.js exports an uploadFile(buffer) helper that posts a caller-supplied buffer to public file hosts (qu.ax, uguu.se, tmpfiles.org); nothing inside the library calls it. The payload runs when an application creates a WhatsApp socket with the library. The harm is the covert use of the victim's account to inflate the publisher's channel subscribers.
SHA-256 of the published npm tarball(s): 1.0.0: 35f3dadb31ae670f801e0f98f6ca49d0b54ae5aca49c220d6abe3053799025f6; 1.0.1: ca15841d74670172731929a694aa5d8bb3c6d8c8a12b58f80729c50093b938c6.
__
Source: amazon-inspector (7c6385ac9e557c4028ed62c213d8f08d21d4a11ba01be0e41d847888e268f3f8)
Review of parxleys@1.0.1 did not surface any code paths associated with supply-chain attack behavior: no install-time or import-time network fetch, no lifecycle script that downloads or executes remote content, no reads of installer secret paths (such as ~/.aws, ~/.ssh, ~/.npmrc, or browser/wallet stores), no environment-variable scraping, no hardcoded author-controlled exfiltration endpoint, no backdoor or reverse-shell mechanism, and no shipped third-party credentials or registry-redirect configuration. The package exposes no behavior that would route installer data outward or run attacker-controlled code on install or require.
Source: ghsa-malware (adc95934afa570c30516223277d5ce0b704ded948877a6d5562ad81acf255d1d)
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.
References
- ADVISORY https://github.com/advisories/GHSA-rg3c-8x72-6pmc
- PACKAGE https://www.npmjs.com/package/parxleys/v/1.0.1
- PACKAGE https://www.npmjs.com/package/parxleys/v/1.0.0
- ARTICLE https://www.ox.security/blog/phantomsub-malicious-npm-campaign-secretly-adds-users-to-whatsapp-spam-channels/
- PACKAGE https://www.npmjs.com/package/parxleys
Ready to move
Start Securing
Free, no credit card | First findings in minutes