{"dataType":"CVE_RECORD","dataVersion":"1.0","cveMetadata":{"cveId":"GCVE-110-OSM-2026-14806","assignerOrgId":"","assignerShortName":"Vulnetix","state":"PUBLISHED","datePublished":"2026-11-11T04:46:15Z","dateUpdated":"2026-11-11T07:07:41Z","dateReserved":""},"containers":{"cna":{"providerMetadata":null,"title":"","descriptions":[{"lang":"en","value":"Malicious package. `@lekzsync/baileys` is a trojanized fork of the Baileys WhatsApp library (@whiskeysockets/baileys). it silently subscribes every victim (via the injected WhatsApp newsletter/channel FOLLOW on connect) to attacker-controlled WhatsApp channels — hardcoded newsletter JIDs: 120363399602691477@newsletter, 120363421563597486@newsletter. Legitimate Baileys never hardcodes a channel JID or auto-follows on connect; all published versions are malicious.\n\nJudge assessment: This looks like a trojanized fork of the Baileys WhatsApp library that injects attacker-controlled behavior on connect, matching the attacker model described in MAL-2026-19109. The deobfuscated payload in `lib/Socket/MessageBuilder.js` and the recovered IOCs show hidden domains/URLs plus `data-exfiltration-encoding` tied to `kyuux-r.indevs.in` and `131.0.0.0`, while `lib/Socket/newsletter.js` contains dynamic base64 handling consistent with concealed subscription logic. The install-time `preinstall` hook (`node ./engine-requirements.js`) and persistence markers referencing `.profile` are additional hostile signals, and the publisher history shows another malicious package from `lekzox`. The combination of obfuscation, hidden IOCs, exfiltration indicators, persistence, and a plausible theft/abuse goal is sufficient to call this malicious with very high confidence.\n\nENTRY\n  engine-requirements.js (install-hook: node ./engine-requirements.js)\n  - Install Hook Executes Local JS File in package.json\n\nPERSISTENCE\n  - Startup Persistence in lib/Socket/MessageBuilder.js: \".profile\"\n  - Startup Persistence in lib/Socket/chats.js: \".profile\"\n  - Startup Persistence in lib/Socket/messages-send.js: \".profile\"\n  - Startup Persistence in lib/Socket/privacy.js: \".PROFILE\"\n  - Startup Persistence in lib/WAUSync/Protocols/USyncBusinessProtocol.js: \".profile\"\n\nDESTINATION\n  - 2 exfil (custom-c2)\n  - 1 fetched-payload (deobfuscated)\n  (values recorded in verified_iocs)\n\nEXFIL\n  - Data Encoding for Exfiltration in lib/Socket/socket.js: \"Buffer.from(creds.noiseKey.public).toString('base64')\"\n  - Data Encoding for Exfiltration in lib/Utils/chat-utils.js: \"Buffer.from(indexMac).toString('base64')\"\n  - Data Encoding for Exfiltration in lib/Utils/generics.js: \"Buffer.from(value?.data || value).toString('base64')\"\n  - Data Encoding for Exfiltration in lib/Utils/messages-media.js: \"Buffer.from(media.fileSha256).toString('base64')\"\n  - Data Encoding for Exfiltration in lib/Utils/process-message.js: \"Buffer.from(keyId.keyId).toString('base64')\"\n  - Data Encoding for Exfiltration in lib/Utils/use-sqlite-auth-state.js: \"Buffer.from(value?.data || value).toString('base64')\"\n  - Network Request in lib/Utils/generics.js: \"fetch('https:\"\n  - Network Request in lib/Utils/messages-media.js: \"request({ hostname: parsedUrl.hostname, port: parsedUrl.port || (parsedUrl.proto...\"\n\nOBFUSCATION\n  - IOCs Found in Deobfuscated Code in lib/Socket/MessageBuilder.js\n  - Dynamic Base64 Decoding in lib/Socket/MessageBuilder.js: \"Buffer.from(media, \"base64\")\"\n  - Dynamic Base64 Decoding in lib/Socket/newsletter.js: \"Buffer.from(jid, \"base64\")\"\n  - Dynamic Base64 Decoding in lib/Utils/chat-utils.js: \"Buffer.from(keyId, 'base64')\"\n  - Dynamic Base64 Decoding in lib/Utils/decode-wa-message.js: \"Buffer.from(secret, 'base64')\"\n  - Dynamic Base64 Decoding in lib/Utils/validate-connection.js: \"Buffer.from(advSecretKey, 'base64')\"\n  - Unicode Escape Obfuscation in lib/Socket/MessageBuilder.js: \"\\u004E\\u0049\\u0058\\u0045\\u004C\"\n  - String Array Obfuscation in lib/Utils/message-composer.js: \"[ 'import', 'export', 'from', 'default', 'as', 'const', 'let', 'var', 'function'...\"\n  (+12 more)\n\nADDITIONAL FINDINGS\n  - Silent Process Execution in lib/Socket/MessageBuilder.js: \"{ silent: true\"\n  - Platform Detection with Data Collection in lib/Socket/message-builder.js: \"JSON.stringify({ sections })).toS\"\n  - Dynamic Code Execution in lib/Utils/message-composer.js: \"exec(line)\"\n  - Publisher Has Other Malicious Packages\n  - Rapid Version Publishing\n\nPAYLOAD FILES\n  lib/Socket/MessageBuilder.js","supportingMedia":null}],"references":[{"url":"https://opensourcemalware.com/threats/ebcddc94-c68d-4148-bb95-131a985a6cf3","name":"Malicious npm package: @lekzsync/baileys","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/MAL-2026-19109","name":"","tags":["advisory"]},{"url":"https://registry.npmjs.org/@lekzsync/baileys","name":"","tags":["vendor"]}],"metrics":[{"format":"CVSS_V3","scenarios":null,"cvssV2_0":null,"cvssV3_0":null,"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"cvssV4_0":null,"other":null}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Embedded Malicious Code","cweId":"CWE-506","type":"CWE"}]}],"affected":[{"vendor":"unknown","product":"@lekzsync/baileys","collectionURL":"https://registry.npmjs.org","packageName":"@lekzsync/baileys","repo":"","defaultStatus":"affected","versions":[{"version":"all","status":"affected","versionType":"","lessThan":"","lessThanOrEqual":"","changes":null}],"cpes":null,"modules":null,"programFiles":null,"platforms":null}],"cpeApplicability":null,"rejectedReasons":null,"replacedBy":null,"x_vulnetix_aliases":{"direct":["MAL-2026-19109"]}},"adp":null}}