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

@merceas/cross-fetchnpm

Malicious code in @merceas/cross-fetch (npm) Remove it immediately and rotate any exposed credentials.

MAL-2026-6510
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @merceas/cross-fetch

What this malware does

Package is published under the @merceas scope as cross-fetch and reuses the upstream cross-fetch README, homepage (github.com/lquixada/cross-fetch), and author metadata to impersonate the legitimate cross-fetch package. The package main, dist/node-ponyfill.js, contains decoy ponyfill code followed by two obfuscator.io-packed IIFEs that run when the module is require()d. The IIFEs dynamically import fs/os/path/https/http/crypto/url/child_process, AES-256-decrypt a URL constructed at runtime from four 32-byte hex Buffers, HTTPS-GET the payload (handling 301/302/303/307/308 redirects with exponential-backoff retries), write it under os.tmpdir()/<name>-<pid>/, chmod the file to 0755 (chmodSync(file, 0o1ed)), then execute it via bash -c <file> and additionally spawn a detached, unref()'d child with stdio:'ignore' and windowsHide:true for self-respawn / persistence. Obfuscation uses a string-array with numeric-IIFE shift, RC4-keyed base64 lookup, and an anti-tamper RegExp debugger self-test to hide the URL and command strings from static inspection. Importing this package — directly or as a transitive — executes attacker-controlled bytes on the installer's machine in any environment that loads the module (CI, build, production, developer workstation).

Malicious versions

1 flagged
3.1.12

Indicators of compromise (SHA-256)

5f6307129b7d9edcbd76ffc93c9d8a6ae146332951d5ce90e659afe1eec01127

Detection & response playbook

Typosquat
  1. Find it

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

  2. If you installed it — respond

    @merceas/cross-fetch is a typosquat — you almost certainly intended a legitimately-named package. Remove @merceas/cross-fetch, install the correct package, and rotate any secrets exposed during the install since post-install scripts may have already run.

  3. Did it already run?

    If @merceas/cross-fetch 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 @merceas/cross-fetch 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. @merceas/cross-fetch on npm has been identified as a malicious package (version 3.1.12 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-007598

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @merceas/cross-fetch-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.