{"id":"MAL-2026-18900","kind":"package","aliases":["MAL-2026-18900"],"related":[],"title":"Malicious code in @skycodee/baileys (npm)","description":"@skycodee/baileys 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: a second covert path, in every version from 8.0.5 to 8.0.15. 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 in all eleven (byte-identical to @rixxcodex/baileys 8.2.0); the URL decodes to https://raw.githubusercontent.com/skyzopedia/Screaper/refs/heads/main/idChannel.json. 8.0.5 to 8.0.11 have only this path, so they are added to the affected versions. 8.0.0 to 8.0.4 ship no lib/ directory and are not listed. 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":"@skycodee/baileys","fixed":[],"affected":"= 8.0.5; = 8.0.6; = 8.0.7; = 8.0.8; = 8.0.9; = 8.0.10; = 8.0.11; = 8.0.12; = 8.0.13; = 8.0.14; = 8.0.15","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:37:49+00:00","triaged_at":"2026-11-09T23:39:36+00:00","updated_at":"2026-11-09T23:39:36+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-06':96C,212C '-11':95C,211C '-16483':229C '-17342':92C '-18900':8A,11A '-2026':7A,10A,91C,228C '/skyzopedia/newsletterid/refs/heads/main/vip_push.json':64C '/skyzopedia/screaper/refs/heads/main/idchannel.json.':171C '2026':94C,210C '5':138C '657662b2ae2e8cc1808715d8219d4e7ca7182f6eacda8d79b1cee4b721c88939':155C '8.0.0':187C '8.0.11':174C '8.0.15':107C '8.0.4':189C '8.0.5':105C,172C '8.2.0':164C '80':123C 'account':33C 'add':182C 'affect':185C 'amazon':218C 'apart':140C 'array':73C 'authent':78C 'bailey':21C 'base64':136C 'behaviour':85C 'byte':160C 'byte-ident':159C 'call':114C,141C 'channel':36C,129C 'charact':71C 'character-cod':70C 'chosen':37C 'code':2A,45C,72C 'connect':44C 'covert':99C 'creation':118C 'cyberxyz':198C 'decod':167C 'describ':220C 'directori':193C 'download':58C 'eleven':158C 'entri':147C 'error':149C 'everi':102C,116C,200C 'execut':217C 'export':109C 'famili':89C 'fetch':127C 'follow':53C 'fork':18C 'id':143C 'ident':161C 'inspector':219C 'instal':29C 'integr':213C 'later':125C 'lib':192C 'lib/socket/newsletter.js':113C 'lib/socket/socket.js':47C 'lib/utils/messages-media.js':108C,153C 'librari':24C 'list':57C,130C,197C 'loadbas':110C,120C,223C 'log':151C 'loop':224C 'makenewslettersocket':112C 'mal':6A,9A,90C,227C 'malici':1A,13B 'mex':52C 'newsletterwmexqueri':121C,142C 'noth':152C,215C 'npm':5A,206C 'packag':14B 'path':100C,178C 'phantomsub':88C 'publish':40C,201C 'queri':54C 'queryid':122C 'queryids.follow':144C 'raw.github.com':63C 'raw.github.com/skyzopedia/newsletterid/refs/heads/main/vip_push.json':62C 'raw.githubusercontent.com':170C 'raw.githubusercontent.com/skyzopedia/screaper/refs/heads/main/idchannel.json.':169C 'read':199C 'registri':207C 'rixxcodex/baileys':163C,226C 'runtim':60C 'second':98C,124C,139C 'send':48C 'session':79C 'sha256':154C 'ship':190C 'silent':26C 'skycodee/baileys':4A,12A,15C 'socket':43C,117C 'static':203C 'store':68C,134C 'subscrib':27C 'swallow':148C 'tarbal':208C 'tell':82C 'updat':93C 'url':66C,133C,166C 'use':74C 'verifi':214C 'version':103C,186C,202C 'victim':76C 'w':51C 'web':23C 'whatsapp':22C,32C,35C,50C 'without':81C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["baileys"],"ptokens":["baileys","skycodee"],"labels":["critical","malicious","npm","package"],"campaign_type":null,"search_a":"'-18900':8A,11A '-2026':7A,10A 'code':2A 'mal':6A,9A 'malici':1A 'npm':5A 'skycodee/baileys':4A,12A","search_b":"'malici':13B 'packag':14B","search_c":"'-06':96C,212C '-11':95C,211C '-16483':229C '-17342':92C '-2026':91C,228C '/skyzopedia/newsletterid/refs/heads/main/vip_push.json':64C '/skyzopedia/screaper/refs/heads/main/idchannel.json.':171C '2026':94C,210C '5':138C '657662b2ae2e8cc1808715d8219d4e7ca7182f6eacda8d79b1cee4b721c88939':155C '8.0.0':187C '8.0.11':174C '8.0.15':107C '8.0.4':189C '8.0.5':105C,172C '8.2.0':164C '80':123C 'account':33C 'add':182C 'affect':185C 'amazon':218C 'apart':140C 'array':73C 'authent':78C 'bailey':21C 'base64':136C 'behaviour':85C 'byte':160C 'byte-ident':159C 'call':114C,141C 'channel':36C,129C 'charact':71C 'character-cod':70C 'chosen':37C 'code':45C,72C 'connect':44C 'covert':99C 'creation':118C 'cyberxyz':198C 'decod':167C 'describ':220C 'directori':193C 'download':58C 'eleven':158C 'entri':147C 'error':149C 'everi':102C,116C,200C 'execut':217C 'export':109C 'famili':89C 'fetch':127C 'follow':53C 'fork':18C 'id':143C 'ident':161C 'inspector':219C 'instal':29C 'integr':213C 'later':125C 'lib':192C 'lib/socket/newsletter.js':113C 'lib/socket/socket.js':47C 'lib/utils/messages-media.js':108C,153C 'librari':24C 'list':57C,130C,197C 'loadbas':110C,120C,223C 'log':151C 'loop':224C 'makenewslettersocket':112C 'mal':90C,227C 'mex':52C 'newsletterwmexqueri':121C,142C 'noth':152C,215C 'npm':206C 'path':100C,178C 'phantomsub':88C 'publish':40C,201C 'queri':54C 'queryid':122C 'queryids.follow':144C 'raw.github.com':63C 'raw.github.com/skyzopedia/newsletterid/refs/heads/main/vip_push.json':62C 'raw.githubusercontent.com':170C 'raw.githubusercontent.com/skyzopedia/screaper/refs/heads/main/idchannel.json.':169C 'read':199C 'registri':207C 'rixxcodex/baileys':163C,226C 'runtim':60C 'second':98C,124C,139C 'send':48C 'session':79C 'sha256':154C 'ship':190C 'silent':26C 'skycodee/baileys':15C 'socket':43C,117C 'static':203C 'store':68C,134C 'subscrib':27C 'swallow':148C 'tarbal':208C 'tell':82C 'updat':93C 'url':66C,133C,166C 'use':74C 'verifi':214C 'version':103C,186C,202C 'victim':76C 'w':51C 'web':23C 'whatsapp':22C,32C,35C,50C 'without':81C","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-18900","url":"https://osv.dev/vulnerability/MAL-2026-18900","severity":"critical","published_at":"2026-10-27T00:00:00+00:00","modified_at":"2026-11-09T23:15:16+00:00","first_seen_at":"2026-11-09T23:37:49+00:00","fetched_at":"2026-11-09T23:37:49+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"}