VDB
GCVE-110-OSM-2026-12379
GCVE-110-OSM-2026-12379
Advisory PublishedCVSS 5.4/10
This package is an example of the extremely popular WhatsApp follower manipulation NPM packages. These packages automatically follow one or more WhatsApp accounts or channels without explicitly telling the user. In this case, the @lekzo/baileys package follows the author of the package with the 0029Vb863rSLtOjDrDNHqq3o@newsletter automatically 3 minutes after installing the package. We are flagging this as low, but we regard this behaviour as malicious.
Additionally, the package.json declares the `libsignal` dependency as `github:canove/libsignal-node` with no tag, branch, or commit SHA. On `npm install`, npm fetches whatever the default branch HEAD of that repository currently points to and runs any lifecycle scripts inside the fetched tree, with no version resolution against the npm registry and no integrity check. The bytes that execute on the installer's machine are entirely controlled by whoever holds write access to that GitHub repo at install time and can change silently between installs.
ENTRY
engine-requirements.js (install-hook: node ./engine-requirements.js)
- Install Hook Executes Local JS File in package.json
PERSISTENCE
- Startup Persistence in lib/Socket/chats.js: ".profile"
DESTINATION
- 1 exfil (custom-c2)
(values recorded in verified_iocs)
EXFIL
- Data Encoding for Exfiltration in lib/Socket/socket.js: "Buffer.from(creds.noiseKey.public).toString('base64')"
- Data Encoding for Exfiltration in lib/Utils/chat-utils.js: "Buffer.from(indexMac).toString('base64')"
- Data Encoding for Exfiltration in lib/Utils/generics.js: "Buffer.from(value?.data || value).toString('base64')"
- Data Encoding for Exfiltration in lib/Utils/messages-media.js: "Buffer.from(media.fileSha256).toString('base64')"
- Data Encoding for Exfiltration in lib/Utils/process-message.js: "Buffer.from(keyId.keyId).toString('base64')"
- Network Request in lib/Utils/generics.js: "fetch('https:"
- Network Request in lib/Utils/messages-media.js: "request({ hostname: parsedUrl.hostname, port: parsedUrl.port || (parsedUrl.proto..."
OBFUSCATION
- Dynamic Base64 Decoding in lib/Utils/chat-utils.js: "Buffer.from(keyId, 'base64')"
- Dynamic Base64 Decoding in lib/Utils/decode-wa-message.js: "Buffer.from(secret, 'base64')"
- Dynamic Base64 Decoding in lib/Utils/validate-connection.js: "Buffer.from(advSecretKey, 'base64')"
- String Array Obfuscation in lib/Utils/message-composer.js: "[ 'import', 'export', 'from', 'default', 'as', 'const', 'let', 'var', 'function'..."
- String Array Obfuscation in lib/Utils/messages.js: "[ 'break', 'case', 'catch', 'continue', 'debugger', 'default', 'delete', 'do', '..."
- String Array Obfuscation in lib/WABinary/constants.js: "[ '1724', 'profile_picture', '1071', '1314', '1605', '407', '990', '1710', '746'..."
- Decoded Base64 Content in lib/Signal/Group/Protocols.js
- Decoded Base64 Content in lib/Socket/newsletter.js
(+3 more)
ADDITIONAL FINDINGS
- Dynamic Code Execution in lib/Utils/message-composer.js: "exec(line)"
- Very New NPM Publisher Account
PAYLOAD FILES
lib/Utils/generics.js (+ lib/Utils/messages-media.js, lib/Utils/chat-utils.js)
Weaknesses (CWE)
CWE-506Embedded Malicious Code
Risk Scores
CVSS 3.1
5.4/10
Medium · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Affected Products
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| unknown | @lekzo/baileys | all (affected) | — |
Aliases
Browse GCVE Records
264 records in the GCVE database · Updated September 20, 2026
No matching records found.
Explore Further
Investigate this vulnerability in the interactive console or download the raw GCVE record.