{"id":"MAL-2026-18916","kind":"package","aliases":["MAL-2026-18916"],"related":[],"title":"Malicious code in @xyrozero/baileys-mod (npm)","description":"@xyrozero/baileys-mod is a fork of the Baileys WhatsApp Web library that silently subscribes the installer's own WhatsApp account to WhatsApp Channels chosen by the publisher. When the socket connects, code in lib/Socket/socket.js sends the WhatsApp w:mex FOLLOW query for a list downloaded at runtime from https://raw.github.com/skyzopedia/NewsletterID/refs/heads/main/VIP_Push.json (the URL itself stored as character-code arrays), using the victim's authenticated session and without telling them. Same behaviour as the PhantomSub family (MAL-2026-17342).\n\nUpdate 2026-11-06: 8.0.14 also carries a second covert path. lib/Utils/messages-media.js exports loadBase, which makeNewsletterSocket (lib/Socket/newsletter.js) calls on every socket creation as loadBase(newsletterWMexQuery, QueryIds). 80 seconds later it fetches a channel list from a URL stored as base64 and, 5 seconds apart, calls newsletterWMexQuery(id, QueryIds.FOLLOW) for each entry, swallowing errors and logging nothing. lib/Utils/messages-media.js sha256 657662b2ae2e8cc1808715d8219d4e7ca7182f6eacda8d79b1cee4b721c88939 (byte-identical to @rixxcodex/baileys 8.2.0); the URL decodes to https://raw.githubusercontent.com/skyzopedia/Screaper/refs/heads/main/idChannel.json. CyberXYZ read every published version statically from the npm registry tarballs on 2026-11-06 (integrity verified); nothing was executed. Amazon Inspector described the same loadBase loop in @rixxcodex/baileys (MAL-2026-16483).","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"@xyrozero/baileys-mod","fixed":[],"affected":"= 8.0.14","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-27T00:00:00+00:00","first_seen_at":"2026-11-09T23:38:00+00:00","triaged_at":"2026-11-09T23:43:42+00:00","updated_at":"2026-11-09T23:43:42+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-06':96C,179C '-11':95C,178C '-16483':196C '-17342':92C '-18916':8A,11A '-2026':7A,10A,91C,195C '/skyzopedia/newsletterid/refs/heads/main/vip_push.json':64C '/skyzopedia/screaper/refs/heads/main/idchannel.json.':164C '2026':94C,177C '5':134C '657662b2ae2e8cc1808715d8219d4e7ca7182f6eacda8d79b1cee4b721c88939':151C '8.0.14':97C '8.2.0':157C '80':119C 'account':33C 'also':98C 'amazon':185C 'apart':136C 'array':73C 'authent':78C 'bailey':21C 'base64':132C 'behaviour':85C 'byte':153C 'byte-ident':152C 'call':110C,137C 'carri':99C 'channel':36C,125C 'charact':71C 'character-cod':70C 'chosen':37C 'code':2A,45C,72C 'connect':44C 'covert':102C 'creation':114C 'cyberxyz':165C 'decod':160C 'describ':187C 'download':58C 'entri':143C 'error':145C 'everi':112C,167C 'execut':184C 'export':105C 'famili':89C 'fetch':123C 'follow':53C 'fork':18C 'id':139C 'ident':154C 'inspector':186C 'instal':29C 'integr':180C 'later':121C 'lib/socket/newsletter.js':109C 'lib/socket/socket.js':47C 'lib/utils/messages-media.js':104C,149C 'librari':24C 'list':57C,126C 'loadbas':106C,116C,190C 'log':147C 'loop':191C 'makenewslettersocket':108C 'mal':6A,9A,90C,194C 'malici':1A,13B 'mex':52C 'newsletterwmexqueri':117C,138C 'noth':148C,182C 'npm':5A,173C 'packag':14B 'path':103C 'phantomsub':88C 'publish':40C,168C 'queri':54C 'queryid':118C 'queryids.follow':140C 'raw.github.com':63C 'raw.github.com/skyzopedia/newsletterid/refs/heads/main/vip_push.json':62C 'raw.githubusercontent.com':163C 'raw.githubusercontent.com/skyzopedia/screaper/refs/heads/main/idchannel.json.':162C 'read':166C 'registri':174C 'rixxcodex/baileys':156C,193C 'runtim':60C 'second':101C,120C,135C 'send':48C 'session':79C 'sha256':150C 'silent':26C 'socket':43C,113C 'static':170C 'store':68C,130C 'subscrib':27C 'swallow':144C 'tarbal':175C 'tell':82C 'updat':93C 'url':66C,129C,159C 'use':74C 'verifi':181C 'version':169C 'victim':76C 'w':51C 'web':23C 'whatsapp':22C,32C,35C,50C 'without':81C 'xyrozero/baileys-mod':4A,12A,15C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["baileysmod"],"ptokens":["baileys","mod","xyrozero"],"labels":["critical","malicious","npm","package"],"campaign_type":null,"search_a":"'-18916':8A,11A '-2026':7A,10A 'code':2A 'mal':6A,9A 'malici':1A 'npm':5A 'xyrozero/baileys-mod':4A,12A","search_b":"'malici':13B 'packag':14B","search_c":"'-06':96C,179C '-11':95C,178C '-16483':196C '-17342':92C '-2026':91C,195C '/skyzopedia/newsletterid/refs/heads/main/vip_push.json':64C '/skyzopedia/screaper/refs/heads/main/idchannel.json.':164C '2026':94C,177C '5':134C '657662b2ae2e8cc1808715d8219d4e7ca7182f6eacda8d79b1cee4b721c88939':151C '8.0.14':97C '8.2.0':157C '80':119C 'account':33C 'also':98C 'amazon':185C 'apart':136C 'array':73C 'authent':78C 'bailey':21C 'base64':132C 'behaviour':85C 'byte':153C 'byte-ident':152C 'call':110C,137C 'carri':99C 'channel':36C,125C 'charact':71C 'character-cod':70C 'chosen':37C 'code':45C,72C 'connect':44C 'covert':102C 'creation':114C 'cyberxyz':165C 'decod':160C 'describ':187C 'download':58C 'entri':143C 'error':145C 'everi':112C,167C 'execut':184C 'export':105C 'famili':89C 'fetch':123C 'follow':53C 'fork':18C 'id':139C 'ident':154C 'inspector':186C 'instal':29C 'integr':180C 'later':121C 'lib/socket/newsletter.js':109C 'lib/socket/socket.js':47C 'lib/utils/messages-media.js':104C,149C 'librari':24C 'list':57C,126C 'loadbas':106C,116C,190C 'log':147C 'loop':191C 'makenewslettersocket':108C 'mal':90C,194C 'mex':52C 'newsletterwmexqueri':117C,138C 'noth':148C,182C 'npm':173C 'path':103C 'phantomsub':88C 'publish':40C,168C 'queri':54C 'queryid':118C 'queryids.follow':140C 'raw.github.com':63C 'raw.github.com/skyzopedia/newsletterid/refs/heads/main/vip_push.json':62C 'raw.githubusercontent.com':163C 'raw.githubusercontent.com/skyzopedia/screaper/refs/heads/main/idchannel.json.':162C 'read':166C 'registri':174C 'rixxcodex/baileys':156C,193C 'runtim':60C 'second':101C,120C,135C 'send':48C 'session':79C 'sha256':150C 'silent':26C 'socket':43C,113C 'static':170C 'store':68C,130C 'subscrib':27C 'swallow':144C 'tarbal':175C 'tell':82C 'updat':93C 'url':66C,129C,159C 'use':74C 'verifi':181C 'version':169C 'victim':76C 'w':51C 'web':23C 'whatsapp':22C,32C,35C,50C 'without':81C 'xyrozero/baileys-mod':15C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-27T00:00:00+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18916","url":"https://osv.dev/vulnerability/MAL-2026-18916","severity":"critical","published_at":"2026-10-27T00:00:00+00:00","modified_at":"2026-11-09T23:15:27+00:00","first_seen_at":"2026-11-09T23:38:00+00:00","fetched_at":"2026-11-09T23:38:00+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}