{"id":"MAL-2026-18688","kind":"package","aliases":["MAL-2026-18688"],"related":[],"title":"Malicious code in kevinx-baileys (npm)","description":"kevinx-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/newsletter.js sends the WhatsApp w:mex FOLLOW query for the channel ID(s) 120363408893555851@newsletter, 120363424295522327@newsletter, 120363426470081124@newsletter, 120363427718144294@newsletter (stored base64-encoded), using the victim's authenticated session and without telling them; the README says \"Nothing is followed unless you call it.\" 1.2.1 was published one directory down (kevinx-baileys/lib/Socket/newsletter.js) under a placeholder package.json whose main, index.js, does not exist, so importing it by name fails, but it ships the same follow code; 1.2.2 restores the normal layout with the same lib/Socket/newsletter.js. Same behaviour as the PhantomSub family (MAL-2026-17342).","summary":null,"severity":"critical","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"kevinx-baileys","fixed":[],"affected":"= 1.2.0; = 1.2.1; = 1.2.2","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["malicious","package"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-26T00:00:00+00:00","first_seen_at":"2026-11-05T06:31:45+00:00","triaged_at":"2026-11-05T06:32:52+00:00","updated_at":"2026-11-05T06:32:52+00:00","category":"package","confidence":null,"triage":null,"analyst_status":null,"analyst_note":null,"search":"'-17342':148C '-18688':10A,13A '-2026':9A,12A,147C '/lib/socket/newsletter.js':107C '1.2.1':98C '1.2.2':131C '120363408893555851':66C '120363424295522327':68C '120363426470081124':70C '120363427718144294':72C 'account':39C 'authent':82C 'bailey':6A,21C,27C,106C 'baileys':16A 'base64':76C 'base64-encoded':75C 'behaviour':141C 'call':96C 'channel':42C,63C 'chosen':43C 'code':2A,51C,130C 'connect':50C 'directori':102C 'encod':77C 'exist':117C 'fail':123C 'famili':145C 'follow':59C,93C,129C 'fork':24C 'id':64C 'import':119C 'index.js':114C 'instal':35C 'kevinx':5A,15A,20C,105C 'kevinx-bailey':4A,19C,104C 'kevinx-baileys':14A 'layout':135C 'lib/socket/newsletter.js':53C,139C 'librari':30C 'main':113C 'mal':8A,11A,146C 'malici':1A,17B 'mex':58C 'name':122C 'newslett':67C,69C,71C,73C 'normal':134C 'noth':91C 'npm':7A 'one':101C 'packag':18B 'package.json':111C 'phantomsub':144C 'placehold':110C 'publish':46C,100C 'queri':60C 'readm':89C 'restor':132C 'say':90C 'send':54C 'session':83C 'ship':126C 'silent':32C 'socket':49C 'store':74C 'subscrib':33C 'tell':86C 'unless':94C 'use':78C 'victim':80C 'w':57C 'web':29C 'whatsapp':28C,38C,41C,56C 'whose':112C 'without':85C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"fix_status":null,"audience":null,"plain_action":null,"pkeys":["kevinxbaileys"],"ptokens":["baileys","kevinx"],"labels":["critical","malicious","npm","package"],"campaign_type":null,"first_public_at":"2026-10-26T00:00:00+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"osv-malicious","external_id":"MAL-2026-18688","url":"https://osv.dev/vulnerability/MAL-2026-18688","severity":"critical","published_at":"2026-10-26T00:00:00+00:00","modified_at":"2026-11-05T05:15:04+00:00","first_seen_at":"2026-11-05T06:31:45+00:00","fetched_at":"2026-11-05T06:31:45+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}