Malicious code in utils-mf (npm)
Package metadata advertises 'utility mf' with main 'index.js', but the shipped main is a 15.7MB obfuscator.io-style blob preceded by ~8MB of invisible-Unicode whitespace padding designed to conceal its contents. On require(), the module performs several unsafe and attacker-beneficial actions:
1. Hidden WhatsApp bot payload: index.js dynamically imports @whiskeysockets/baileys, calls useMultiFileAuthState('sessions/dev'), opens a WhatsApp socket via makeWASocket(...), prompts on stdin for a pairing-code phone number, and writes credential state to ./sessions/. None of this is gated behind an exported function — it fires when the module is loaded.
2. Auto-exfiltration of accumulated chat/session state: an AutoBackup routine on a 30-second setInterval PUTs the local database.json (containing chats, contacts, sessions, and env-derived state) to https://api.github.com/repos/<owner>/<repo>/contents/database.json and the analogous GitLab API, using a token and repo path read from package-operator settings. The destination repo and credential are not the library consumer's — they are configured in the package's payload, so any consumer running this code uploads their accumulated state to the package operator's repository on a timer.
3. Runtime self-updater / silent-mutation primitive: on load, the module fetches https://registry.npmjs.org/utils-mf/latest, compares versions, downloads the latest tarball to ./tmp/upgrade.tgz, and extracts it over node_modules/utils-mf/ using tar -xzf (or Expand-Archive on Windows), then reloads. Already-installed copies will silently pull and execute any future published version, including a compromised one — the package mutates itself at runtime regardless of the consumer's lockfile.
4. Privileged system mutation at import: the top-level code shells out via exec to apt-get install -y ffmpeg imagemagick git tar zip unzip when those binaries are missing, runs recurring exec('rm -rf /tmp/*') and exec('netstat -an') on intervals, and writes to ./tmp/ and ./sessions/ in the consumer's CWD.
The combination of deceptive packaging (utility name, opaque blob), import-time exfiltration of local data to attacker-configured repos, an in-band self-update channel that bypasses normal dependency pinning, and unsanctioned privileged shell execution constitutes an active supply-chain attack against any installer who consumes this package as a 'utility'.
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
MAL-2026-4699 is recorded against 1 package.
Published on 21 May 2026 and last revised on 8 July 2026. No public exploit is currently recorded for this entry. Record sourced from OSV.
www.npmjs.com (Package)
www.npmjs.com (Package)
www.npmjs.com (Package)
www.npmjs.com (Package)
github.com (Advisory)
www.npmjs.com (Package)
www.npmjs.com (Package)
www.npmjs.com (Package)
www.npmjs.com (Package)
www.npmjs.com (Package)
www.npmjs.com (Package)
Details
Affected Packages
| Software | From version | Fixed in |
|---|---|---|
| utils-mf | — | — |
References
Free Vulnerability Check
BotEraser helps you identify potentially vulnerable plugins and themes by checking your installation against MAL-2026-4699 and other known CVE records.
Scan My Site Free →No credit card required · Results in minutes
ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.
Stay up to date with the latest from Boteraser.
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
CloudFlare provides web performance and security solutions, enhancing site speed and protecting against threats.
Service URL: developers.cloudflare.com (opens in a new window)
These cookies are needed for adding comments on this website.
These cookies are used for managing login functionality on this website.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com (opens in a new window)
You can find more information in our Cookie Policy and Privacy Policy.