{"id":"MAL-2026-4619","kind":"package","aliases":["MAL-2026-4619"],"related":[],"title":"Malicious code in naileys (npm)","description":"naileys 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/newsletter.js sends the WhatsApp w:mex FOLLOW query for the channel ID(s) 120363392840803980@newsletter, 120363406068468165@newsletter, 120363407185712919@newsletter, 120363420514587725@newsletter, 120363426706961217@newsletter, using the victim's authenticated session and without telling them. Same behaviour as the PhantomSub family (MAL-2026-17342).\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (53307e8df479525765ddef8cf9a54dcf0aa368b8ef57a088b624a5e80f72c999)\nnaileys is a fork/lookalike of the WhatsApp library baileys (single-character edit; internal references still mention 'wileys', and fetchLatestBaileysVersion in lib/Utils/generics.js queries https://registry.npmjs.org/wileys). On every successful WhatsApp connection, lib/Socket/newsletter.js (lines 83-99) executes a hardcoded auto-follow routine: a comment 'Naileys - Auto follow channels on connect' precedes a CHANNELS array containing three hardcoded JIDs ('120363426706961217@newsletter', '120363406068468165@newsletter', '120363420514587725@newsletter') and issues newsletterWMexQuery(jid, QueryIds.FOLLOW) for each. This fires automatically when a consumer simply uses the advertised makeWASocket API — no opt-in, no documentation, no configuration. The effect is that every WhatsApp account driven by naileys (the developer's account or any bot/end-user account using their software) is silently subscribed to author-controlled newsletter channels, modifying installer-side account state and giving the author guaranteed broadcast reach to every consumer. This is the silent-relay pattern: the package's documented API has an undisclosed side effect routed to a hardcoded author destination. The name-similarity to baileys plus verbatim API mimicry corroborates intentional typosquat-as-delivery-vehicle.","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"naileys","fixed":[],"affected":"= 0.5.2; = 0.5.1; = 0.5.4; = 0.5.6","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"withdrawn","published_at":"2026-05-20T12:27:33+00:00","first_seen_at":"2026-11-09T23:38:05+00:00","triaged_at":"2026-11-09T23:47:53+00:00","updated_at":"2026-11-09T23:47:53+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-17342':88C '-2026':7A,10A,87C '-4619':8A,11A '-99':138C '/wileys).':129C '120363392840803980':60C '120363406068468165':62C,164C '120363407185712919':64C '120363420514587725':66C,166C '120363426706961217':68C,162C '53307e8':102C '83':137C 'account':33C,201C,208C,212C,229C 'advertis':184C 'amazon':100C 'amazon-inspector':99C 'api':186C,252C,272C 'array':157C 'authent':74C 'author':221C,234C,262C 'author-control':220C 'auto':143C,149C 'auto-follow':142C 'automat':177C 'bailey':21C,112C,269C 'behaviour':81C 'bot/end-user':211C 'broadcast':236C 'channel':36C,57C,151C,156C,224C 'charact':115C 'chosen':37C 'code':2A,45C 'comment':147C 'configur':194C 'connect':44C,134C,153C 'consum':180C,240C 'contain':158C 'control':222C 'corrobor':274C 'deliveri':279C 'destin':263C 'detail':91C 'develop':206C 'df479525765ddef8cf9a54dcf0aa368b8ef57a088b624a5e80f72c999':103C 'document':192C,251C 'driven':202C 'edit':94C,116C 'effect':196C,257C 'everi':131C,199C,239C 'execut':139C 'famili':85C 'fetchlatestbaileysvers':123C 'fire':176C 'follow':53C,144C,150C 'fork':18C 'fork/lookalike':107C 'give':232C 'guarante':235C 'hardcod':141C,160C,261C 'id':58C 'inspector':101C 'instal':29C,227C 'installer-sid':226C 'intent':275C 'intern':117C 'issu':169C 'jid':161C,171C 'lib/socket/newsletter.js':47C,135C 'lib/utils/generics.js':125C 'librari':24C,111C 'line':97C,136C 'makewasocket':185C 'mal':6A,9A,86C 'malici':1A,13B 'mention':120C 'mex':52C 'mimicri':273C 'modifi':225C 'nailey':4A,15C,104C,148C,204C 'naileys':12A 'name':266C 'name-similar':265C 'newslett':61C,63C,65C,67C,69C,163C,165C,167C,223C 'newsletterwmexqueri':170C 'npm':5A 'opt':189C 'opt-in':188C 'packag':14B,249C 'pattern':247C 'per':89C 'phantomsub':84C 'plus':270C 'preced':154C 'publish':40C 'queri':54C,126C 'queryids.follow':172C 'reach':237C 'refer':118C 'registry.npmjs.org':128C 'registry.npmjs.org/wileys).':127C 'relay':246C 'rout':258C 'routin':145C 'send':48C 'session':75C 'side':228C,256C 'silent':26C,217C,245C 'silent-relay':244C 'similar':267C 'simpli':181C 'singl':114C 'single-charact':113C 'socket':43C 'softwar':215C 'sourc':90C,98C 'state':230C 'still':119C 'subscrib':27C,218C 'success':132C 'tell':78C 'three':159C 'typosquat':277C 'typosquat-as-delivery-vehicl':276C 'undisclos':255C 'use':70C,182C,213C 'vehicl':280C 'verbatim':271C 'victim':72C 'w':51C 'web':23C 'whatsapp':22C,32C,35C,50C,110C,133C,200C 'wiley':121C 'without':77C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["naileys"],"ptokens":["naileys"],"labels":["critical","malicious","npm","package"],"campaign_type":null,"search_a":"'-2026':7A,10A '-4619':8A,11A 'code':2A 'mal':6A,9A 'malici':1A 'nailey':4A 'naileys':12A 'npm':5A","search_b":"'malici':13B 'packag':14B","search_c":"'-17342':88C '-2026':87C '-99':138C '/wileys).':129C '120363392840803980':60C '120363406068468165':62C,164C '120363407185712919':64C '120363420514587725':66C,166C '120363426706961217':68C,162C '53307e8':102C '83':137C 'account':33C,201C,208C,212C,229C 'advertis':184C 'amazon':100C 'amazon-inspector':99C 'api':186C,252C,272C 'array':157C 'authent':74C 'author':221C,234C,262C 'author-control':220C 'auto':143C,149C 'auto-follow':142C 'automat':177C 'bailey':21C,112C,269C 'behaviour':81C 'bot/end-user':211C 'broadcast':236C 'channel':36C,57C,151C,156C,224C 'charact':115C 'chosen':37C 'code':45C 'comment':147C 'configur':194C 'connect':44C,134C,153C 'consum':180C,240C 'contain':158C 'control':222C 'corrobor':274C 'deliveri':279C 'destin':263C 'detail':91C 'develop':206C 'df479525765ddef8cf9a54dcf0aa368b8ef57a088b624a5e80f72c999':103C 'document':192C,251C 'driven':202C 'edit':94C,116C 'effect':196C,257C 'everi':131C,199C,239C 'execut':139C 'famili':85C 'fetchlatestbaileysvers':123C 'fire':176C 'follow':53C,144C,150C 'fork':18C 'fork/lookalike':107C 'give':232C 'guarante':235C 'hardcod':141C,160C,261C 'id':58C 'inspector':101C 'instal':29C,227C 'installer-sid':226C 'intent':275C 'intern':117C 'issu':169C 'jid':161C,171C 'lib/socket/newsletter.js':47C,135C 'lib/utils/generics.js':125C 'librari':24C,111C 'line':97C,136C 'makewasocket':185C 'mal':86C 'mention':120C 'mex':52C 'mimicri':273C 'modifi':225C 'nailey':15C,104C,148C,204C 'name':266C 'name-similar':265C 'newslett':61C,63C,65C,67C,69C,163C,165C,167C,223C 'newsletterwmexqueri':170C 'opt':189C 'opt-in':188C 'packag':249C 'pattern':247C 'per':89C 'phantomsub':84C 'plus':270C 'preced':154C 'publish':40C 'queri':54C,126C 'queryids.follow':172C 'reach':237C 'refer':118C 'registry.npmjs.org':128C 'registry.npmjs.org/wileys).':127C 'relay':246C 'rout':258C 'routin':145C 'send':48C 'session':75C 'side':228C,256C 'silent':26C,217C,245C 'silent-relay':244C 'similar':267C 'simpli':181C 'singl':114C 'single-charact':113C 'socket':43C 'softwar':215C 'sourc':90C,98C 'state':230C 'still':119C 'subscrib':27C,218C 'success':132C 'tell':78C 'three':159C 'typosquat':277C 'typosquat-as-delivery-vehicl':276C 'undisclos':255C 'use':70C,182C,213C 'vehicl':280C 'verbatim':271C 'victim':72C 'w':51C 'web':23C 'whatsapp':22C,32C,35C,50C,110C,133C,200C 'wiley':121C 'without':77C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-05-20T12:27:33+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-4619","url":"https://osv.dev/vulnerability/MAL-2026-4619","severity":"critical","published_at":"2026-05-20T12:27:33+00:00","modified_at":"2026-11-09T23:15:34+00:00","first_seen_at":"2026-11-09T23:38:05+00:00","fetched_at":"2026-11-09T23:38:05+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"}